import { type ProcessCommand } from "./process.js";
import type { SlideAutoTune, SlideImage } from "./types.js";
export declare function detectSlideTimestamps({ ffmpegPath, ffprobePath, inputPath, sceneThreshold, autoTuneThreshold, env, timeoutMs, warnings, workers, sampleCount, onSegmentProgress, logSlides, logSlidesTiming, }: {
    ffmpegPath: ProcessCommand;
    ffprobePath: ProcessCommand | null;
    inputPath: string;
    sceneThreshold: number;
    autoTuneThreshold: boolean;
    env: Record<string, string | undefined>;
    timeoutMs: number;
    warnings: string[];
    workers: number;
    sampleCount: number;
    onSegmentProgress?: ((completed: number, total: number) => void) | null;
    logSlides?: ((message: string) => void) | null;
    logSlidesTiming?: ((label: string, startedAt: number) => number) | null;
}): Promise<{
    timestamps: number[];
    autoTune: SlideAutoTune;
    durationSeconds: number | null;
}>;
export declare function extractFramesAtTimestamps({ ffmpegPath, inputPath, outputDir, timestamps, segments, durationSeconds, timeoutMs, workers, onProgress, onStatus, onSlide, logSlides, logSlidesTiming, }: {
    ffmpegPath: ProcessCommand;
    inputPath: string;
    outputDir: string;
    timestamps: number[];
    segments?: Array<{
        start: number;
        end: number | null;
    } | null>;
    durationSeconds?: number | null;
    timeoutMs: number;
    workers: number;
    onProgress?: ((completed: number, total: number) => void) | null;
    onStatus?: ((text: string) => void) | null;
    onSlide?: ((slide: SlideImage) => void) | null;
    logSlides?: ((message: string) => void) | null;
    logSlidesTiming?: ((label: string, startedAt: number) => number) | null;
}): Promise<SlideImage[]>;
