import type { ReframeCaptionProfile, ReframePlan } from './reframe/types.js'; import type { ReframePlanQcReport } from './reframe/qc.js'; import type { AssembleMediaQcReport } from './assemble/media-qc.js'; export type ProjectOrFileOptions = { projectSlug?: string; filePath?: string; root?: string; }; export interface VideoVariantResult { projectSlug?: string; variant: 'vertical' | 'square' | 'loop'; sourcePath: string; outputPath: string; durationSeconds?: number; sizeBytes?: number; videoCodec?: string; width?: number; height?: number; frameRate?: string; audioPresent: boolean; audioCodec?: string; reframeMode?: 'shot-plan' | 'quick-center-crop'; warnings?: string[]; reframe?: { plan: ReframePlan; planQc: ReframePlanQcReport; mediaQc: AssembleMediaQcReport; qcReceiptPath: string; }; } export interface VideoThumbnailResult { projectSlug?: string; sourcePath: string; outputPath: string; timestampSeconds: number; text?: string; overlayApplied: boolean; } export interface VideoSubtitleBurnResult { projectSlug?: string; sourcePath: string; subtitlePath: string; outputPath: string; burnedIn: boolean; durationSeconds?: number; sizeBytes?: number; videoCodec?: string; width?: number; height?: number; frameRate?: string; audioPresent: boolean; audioCodec?: string; } export declare function resolvePostProductionSourcePath(options: ProjectOrFileOptions): Promise; /** * Does the ffmpeg we would actually run provide `filterName`? * * Previously this probed the literal `ffmpeg` on PATH while the exec used a * different binary, so it could answer about the wrong build in both directions. * It now probes whatever `resolveFfmpegBin` resolves to. */ export declare function ffmpegSupportsFilter(filterName: string): Promise; export declare function makeVideoVariant(options: ProjectOrFileOptions & { variant: 'vertical' | 'square' | 'loop'; outputPath?: string; reframePlanPath?: string; quickCenterCrop?: boolean; captionsPath?: string; captionProfile?: ReframeCaptionProfile; strict?: boolean; }): Promise; export declare function createVideoThumbnail(options: ProjectOrFileOptions & { outputPath?: string; text?: string; }): Promise; export declare function burnVideoSubtitles(options: ProjectOrFileOptions & { subtitlePath: string; outputPath?: string; }): Promise; //# sourceMappingURL=post-production.d.ts.map