/**
 * Producer-local timing compiler helpers.
 * Keep this aligned with core timing compiler behavior.
 */
export interface UnresolvedElement {
    id: string;
    tagName: string;
    src?: string;
    start: number;
    end?: number;
    duration?: number;
    mediaStart: number;
    compositionSrc?: string;
}
export interface ResolvedDuration {
    id: string;
    duration: number;
}
export interface ResolvedMediaElement {
    id: string;
    tagName: string;
    src?: string;
    start: number;
    duration: number;
    mediaStart: number;
}
export interface CompilationResult {
    html: string;
    unresolved: UnresolvedElement[];
}
export declare function compileTimingAttrs(html: string): CompilationResult;
export declare function injectDurations(html: string, resolutions: ResolvedDuration[]): string;
/**
 * Extract video/audio elements that already have data-duration set.
 * Used by callers to validate declared durations against actual source durations.
 */
export declare function extractResolvedMedia(html: string): ResolvedMediaElement[];
/**
 * Clamp existing data-duration and data-end on media elements.
 * For each resolution, replaces the declared duration with the clamped value
 * and recomputes data-end accordingly.
 */
export declare function clampDurations(html: string, clamps: ResolvedDuration[]): string;
//# sourceMappingURL=timingCompiler.d.ts.map