/**
 * Shared FFmpeg/FFprobe binary resolution for every package that shells out
 * to them (engine, cli, lint, studio-server). Node-only: import via the
 * `@hyperframes/parsers/ff-binaries` subpath, never from a browser bundle.
 */
declare const FFMPEG_PATH_ENV = "HYPERFRAMES_FFMPEG_PATH";
declare const FFPROBE_PATH_ENV = "HYPERFRAMES_FFPROBE_PATH";
type FfBinaryName = "ffmpeg" | "ffprobe";
interface FindFfBinaryOptions {
    /**
     * How to treat an env override that points at a missing file: `true`
     * reports the binary as not found (callers that surface an install hint or
     * skip probing), `false`/unset returns the configured path as-is (callers
     * that validate the override separately and want spawn errors to name the
     * path the user configured).
     */
    configuredMustExist?: boolean;
}
/**
 * Resolve an FFmpeg-family binary: env override first, then a native
 * current-directory/PATH scan on Windows or `which` plus PATH scan on Unix,
 * then a project-local
 * `.hyperframes/bin`, then well-known Unix install dirs. System lookups are
 * cached per binary for the process lifetime; the env override is re-read on
 * every call.
 */
declare function findFfBinary(name: FfBinaryName, options?: FindFfBinaryOptions): string | undefined;
/** Test hook: drop cached system lookups so resolution can be re-exercised. */
declare function clearFfBinaryLookupCache(): void;

export { FFMPEG_PATH_ENV, FFPROBE_PATH_ENV, type FfBinaryName, type FindFfBinaryOptions, clearFfBinaryLookupCache, findFfBinary };
