import type { VideoMedia } from "./video-production-state.ts"; /** Hash large media without keeping the whole source in memory. */ export declare function hashVideoFile(filePath: string): Promise; /** Reject symlink traversal, including a symlinked output directory before file creation. */ export declare function safeVideoProjectPath(projectFolder: string, relativePath: string): Promise; export interface VideoProbeOptions { probeExecutable: string; timeoutMs: number; } /** The common bounded probe used by imports, generated sources and rendered deliverables. */ export declare function probeVideoMedia(filePath: string, signal?: AbortSignal, options?: VideoProbeOptions): Promise<{ durationSeconds: number; width: number; height: number; frameRate: number; hasAudio: boolean; }>; /** Inspect actual media and hash its bytes; file type and provider dimensions are not trusted. */ export declare function inspectVideoMedia(projectFolder: string, relativePath: string, signal?: AbortSignal, options?: VideoProbeOptions): Promise; /** Decode the final displayed frame before a media out-point (or its first frame at zero). */ export declare function extractVideoTailFrame(projectFolder: string, relativePath: string, endSeconds: number, signal?: AbortSignal): Promise;