/**
 * Hidden render provenance.
 *
 * HyperFrames stamps the *container* — never the picture — with the renderer
 * name and version, so a rendered file carries a machine-readable note about
 * what produced it, with no visible watermark burned into the frames.
 *
 * What goes in is deliberately boring: renderer name and version. No file
 * paths, usernames, machine names, project names or composition content. Once
 * a file is distributed the metadata travels with it, and metadata leaks are
 * hard to walk back.
 *
 * **An unauthenticated hint — not an authenticity or attribution boundary.**
 * These are ordinary unsigned container keys that any tool can write, so a
 * present tag means the file *claims* to be HyperFrames output, not that
 * HyperFrames produced it: one `ffmpeg -metadata hyperframes_renderer=...`
 * forges it. Absence proves just as little, since re-encoding, remuxing, or
 * any tool that drops unknown keys strips them, and files rendered before this
 * feature never had them. Good for diagnostics and support ("what wrote this
 * file?"); never a basis for trust, attribution or licensing decisions in
 * either direction. Verifiable provenance needs signed claims (C2PA), which
 * this deliberately is not.
 */
export declare const PROVENANCE_RENDERER_TAG = "hyperframes_renderer";
export declare const PROVENANCE_VERSION_TAG = "hyperframes_version";
export declare const PROVENANCE_RENDERER_NAME = "hyperframes";
export declare const PROVENANCE_VERSION: string;
/**
 * The provenance ffmpeg arguments for a given output container. Place them
 * before the output path.
 *
 * Must be applied on *every* stage that writes an mp4 — encode, mux and the
 * faststart remux each run their own ffmpeg, and a stage without the flag
 * drops the tags written by the stage before it.
 */
export declare function renderProvenanceArgs(outputPath: string): string[];
/** Mutating form of {@link renderProvenanceArgs} for push-built arg lists. */
export declare function appendRenderProvenanceArgs(args: string[], outputPath: string): void;
export interface RenderProvenance {
    renderer: string;
    /** Empty string when the renderer tag is present but the version is not. */
    version: string;
}
/**
 * Read provenance back from ffprobe format tags. Matroska uppercases keys on
 * read while mp4 preserves the case written, so the lookup is
 * case-insensitive — a case-sensitive read works on mp4 and misses every webm.
 */
export declare function readRenderProvenance(tags: Record<string, string | undefined> | undefined): RenderProvenance | null;
//# sourceMappingURL=renderProvenance.d.ts.map