import { AIClient } from "../clients";
export interface TranscriptChunk {
    chunkPath: string;
    text: string;
    usd_cost: number;
}
export interface KeyframeInfo {
    path: string;
    description: string;
    timestamp: number;
    usd_cost?: number;
}
export declare class MediaProcessorService {
    private clients;
    constructor(clients: AIClient);
    chunk(filePath: string, outputDir: string, CHUNK_LENGTH_SECONDS?: number, reuseExistingChunks?: boolean, onProgress?: (progressFraction: number) => void): Promise<string[]>;
    streamTranscription(files: string[], outputPath: string, reusePreviousTranscript?: boolean): AsyncGenerator<TranscriptChunk>;
    transcribeChunks(files: string[], outputPath: string, reusePreviousTranscript?: boolean): Promise<string[]>;
    processAudio(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number): Promise<string[]>;
    streamKeyFrameExtraction(filePath: string, videoJsonPath: string, reusePreviousKeyframes?: boolean, interval?: number): AsyncGenerator<KeyframeInfo>;
    extractKeyframes(filePath: string, outputPath: string, reusePreviousKeyframes?: boolean, interval?: number): Promise<KeyframeInfo[]>;
    private describeKeyframe;
    streamProcessVideo(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number, onChunkingProgress?: (fraction: number) => void): AsyncGenerator<{
        frame: KeyframeInfo;
        transcription: TranscriptChunk;
    }, void, unknown>;
    streamProcessAudio(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number, onChunkingProgress?: (fraction: number) => void): AsyncGenerator<TranscriptChunk>;
}
