/**
 * Callback to probe media duration. If not provided, media duration resolution is skipped.
 * Return duration in seconds, or 0 if unknown.
 */
export type MediaDurationProber = (src: string) => Promise<number>;
/**
 * Compile HTML with full duration resolution.
 *
 * 1. Static pass: compileTimingAttrs() adds data-end where data-duration exists
 * 2. For unresolved video/audio (no data-duration): probe via probeMediaDuration, inject durations
 * 3. For pre-resolved audio: clamp data-duration to playable source when needed.
 *    Explicit video slots are preserved and hold their final frame.
 *
 * @param rawHtml - The raw HTML string
 * @param projectDir - The project directory for resolving relative paths
 * @param probeMediaDuration - Optional callback to probe media duration (e.g., via ffprobe)
 */
export declare function compileHtml(rawHtml: string, projectDir: string, probeMediaDuration?: MediaDurationProber): Promise<string>;
//# sourceMappingURL=htmlCompiler.d.ts.map