import type { SlideAutoTune, SlideExtractionResult, SlideImage, SlideSource, SlideSourceKind } from "./types.js";
export declare const SLIDES_PROGRESS: {
    readonly PREPARE: 2;
    readonly FETCH_VIDEO: 6;
    readonly DOWNLOAD_VIDEO: 35;
    readonly DETECT_SCENES: 60;
    readonly EXTRACT_FRAMES: 90;
    readonly OCR: 99;
    readonly FINAL: 100;
};
export type SlidesChunkMeta = {
    slidesDir: string;
    sourceUrl: string;
    sourceId: string;
    sourceKind: SlideSourceKind;
    ocrAvailable: boolean;
};
export declare function buildSlidesChunkMeta(args: {
    slidesDir: string;
    source: SlideSource;
    ocrAvailable: boolean;
}): SlidesChunkMeta;
export declare function buildSlideTimeline(args: {
    source: SlideSource;
    slidesDir: string;
    sceneThreshold: number;
    autoTuneThreshold: boolean;
    autoTune: SlideAutoTune;
    maxSlides: number;
    minSlideDuration: number;
    ocrRequested: boolean;
    ocrAvailable: boolean;
    warnings: string[];
    slides: Array<SlideImage & {
        segment?: unknown;
    }>;
}): SlideExtractionResult;
export declare function emitPlaceholderSlides(args: {
    slides: Array<SlideImage & {
        segment?: unknown;
    }>;
    meta: SlidesChunkMeta;
    onSlideChunk?: ((value: {
        slide: SlideImage;
        meta: SlidesChunkMeta;
    }) => void) | null;
}): void;
export declare function emitFinalSlides(args: {
    slides: SlideImage[];
    meta: SlidesChunkMeta;
    onSlideChunk?: ((value: {
        slide: SlideImage;
        meta: SlidesChunkMeta;
    }) => void) | null;
}): void;
export declare function renameSlidesWithTimestamps(slides: SlideImage[], slidesDir: string): Promise<SlideImage[]>;
export declare function writeSlidesJson(result: SlideExtractionResult, slidesDir: string): Promise<void>;
