export declare const MARKETING_SURFACES: readonly ["desktop", "mobile-landscape", "mobile-portrait"];
export declare const MARKETING_AUDIO_POLICIES: readonly ["music-and-sfx", "sfx-only", "silent"];
type MarketingSurface = typeof MARKETING_SURFACES[number];
type MarketingAudioPolicy = typeof MARKETING_AUDIO_POLICIES[number];
type MarketingPlatform = NodeJS.Platform;
type MarketingCaptureOptions = {
    app?: string;
    surfaces?: string;
    duration?: string | number;
    fps?: string | number;
    audioPolicy?: string;
    seed?: string;
    outputDir?: string;
    screenDevice?: string;
    keepRaw?: boolean;
};
type ParsedMarketingCaptureOptions = {
    targetArg?: string;
    appName?: string;
    surfaces: MarketingSurface[];
    durationSeconds: number;
    fps: number;
    audioPolicy: MarketingAudioPolicy;
    seed: string;
    outputDir: string | null;
    screenDevice: string | null;
    keepRaw: boolean;
};
type CaptureRect = {
    x: number;
    y: number;
    width: number;
    height: number;
};
type MarketingOutputPaths = {
    rootDir: string;
    capturesDir: string;
    playdropDir: string;
    socialDir: string;
    thumbnailsDir: string;
    screenshotsDir: string;
    manifestPath: string;
    reportPath: string;
};
type MarketingFfmpegArgsInput = {
    platform: MarketingPlatform;
    fps: number;
    durationSeconds: number;
    inputDevice?: string | null;
    crop: CaptureRect;
    output: {
        width: number;
        height: number;
        path: string;
    };
};
type MarketingCaptureManifestInput = {
    appName: string;
    createdAt: string;
    audioPolicy: MarketingAudioPolicy;
    seed: string;
    captureEngine: 'avfoundation' | 'gdigrab';
    captures: MarketingCaptureManifest['captures'];
};
export type MarketingCaptureManifest = {
    appName: string;
    createdAt: string;
    captureSource: 'playdrop-cli-local-screen';
    captureEngine: 'avfoundation' | 'gdigrab';
    audioPolicy: MarketingAudioPolicy;
    seed: string;
    captures: Array<{
        surface: MarketingSurface;
        path: string;
        width: number;
        height: number;
        fps: number;
        durationSeconds: number;
        hasAudio: boolean;
        audio: {
            policy: MarketingAudioPolicy;
            backgroundMusic: boolean;
            sfx: boolean;
            peakDb?: number | null;
            integratedLufs?: number | null;
        };
        validation: {
            previewFrameSimilarity: number;
        };
    }>;
};
type MarketingReport = {
    appName: string;
    createdAt: string;
    status: 'passed' | 'failed';
    durationSeconds: number;
    gates: Array<{
        id: string;
        status: 'passed' | 'failed';
        summary: string;
    }>;
    assetCounts: {
        captures: number;
        videos: number;
        images: number;
        listingArt: number;
    };
    captureValidation: {
        surfaces: MarketingSurface[];
        fps: number;
        audioValidated: boolean;
        excitingMomentValidated: boolean;
    };
    timings: {
        captureSeconds: number;
        assetRenderSeconds: number;
        documentationSeconds: number;
    };
    warnings: string[];
};
export declare function parseMarketingCaptureOptions(targetArg: string | undefined, options?: MarketingCaptureOptions): ParsedMarketingCaptureOptions;
export declare function assertSupportedMarketingCapturePlatform(platform?: MarketingPlatform): void;
export declare function resolveMarketingOutputPaths(projectRoot: string, _appName: string, explicitOutputDir: string | null): MarketingOutputPaths;
export declare function validateMarketingPreviewConfig(rawApp: unknown): string[];
export declare function buildMarketingFfmpegArgs(input: MarketingFfmpegArgsInput): string[];
export declare function buildMarketingCaptureManifest(input: MarketingCaptureManifestInput): MarketingCaptureManifest;
export declare function createMarketingReport(input: {
    appName: string;
    startedAt: number;
    createdAt: string;
    surfaces: MarketingSurface[];
    fps: number;
    audioValidated: boolean;
}): MarketingReport;
export declare function marketingDoctor(targetArg: string | undefined, options?: MarketingCaptureOptions): Promise<void>;
export declare function marketingCapture(targetArg: string | undefined, options?: MarketingCaptureOptions): Promise<void>;
export {};
