type CaptureListingOptions = {
    app?: string;
    duration?: string | number;
    width?: string | number;
    height?: string | number;
    fps?: string | number;
    posterAt?: string | number;
    audio?: boolean;
    outputDir?: string;
    keepRaw?: boolean;
};
type ParsedCaptureListingOptions = {
    targetArg?: string;
    appName?: string;
    durationSeconds: number;
    width: number;
    height: number;
    fps: number;
    posterAtSeconds: number;
    audio: boolean;
    outputDir: string | null;
    keepRaw: boolean;
};
type CaptureRect = {
    x: number;
    y: number;
    width: number;
    height: number;
    top: number;
    left: number;
    right: number;
    bottom: number;
};
type HostedGameMeasurement = {
    outerWidth: number;
    outerHeight: number;
    innerWidth: number;
    innerHeight: number;
    devicePixelRatio: number;
    iframeRect: CaptureRect;
};
type CropRect = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export declare function resolveListingCaptureRouteSegment(previewable: boolean): 'dev' | 'dev-preview';
export declare function resolveListingCaptureSceneId(width: number, height: number): 'listing-landscape' | 'listing-portrait';
export declare function parseCaptureListingOptions(targetArg: string | undefined, options?: CaptureListingOptions): ParsedCaptureListingOptions;
export declare function assertSupportedListingEnvironment(platform?: NodeJS.Platform, macosVersion?: string): void;
export declare function resolveListingRecorderPath(baseDir?: string): string;
export declare function computeRecordedCrop(measurement: HostedGameMeasurement, rawWidth: number, rawHeight: number): CropRect;
export declare function captureListing(targetArg: string | undefined, options?: CaptureListingOptions): Promise<void>;
export {};
