AVFoundation variable frame rate output

Does AVFoundation exports only have fixed frame rate output in presets other than passthrough? In other words, do AVAssetExportSession & AVAssetWriter/Reader output/input ever output variable frame rate video? If input video was 29.43 fps, I see output video is always 30 fps when I render using the above two interfaces. Looks like AVF applies a default video composition while rendering.
The answer likely varies on a case-by-case basis. For example, with AVAssetReader or AVAssetWriter are used with nil output settings, the timing (and format, and just about everything else) of the source frames is preserved.
Thanks for the response. So just to give a background of the issue, I am implementing an editing timeline to mix videos & photos which can be zoomed in/out. At the highest zoom level you can scrub through individual frames of AVComposition. So I was thinking of mapping individual points in timeline to time in composition, where time is measured in number of frames, not seconds or milliseconds. I am not sure if this model of representation of time is reliable enough with variable frame rate videos, even if I set AVVideoComposition frameDuration property to CMTime(1,30) or CMTime(1,25).
AVFoundation variable frame rate output
 
 
Q