import { Scene, ProjectSettings, Narration, NarrationDefaults } from '../types/index.js';
import { KumikiError } from '../utils/errors.js';
export declare class NarrationError extends KumikiError {
    constructor(message: string, details?: unknown);
}
export interface ProcessNarrationParams {
    scene: Scene;
    narrationDefaults?: NarrationDefaults;
    outputDir: string;
}
export interface ProcessNarrationResult {
    audioPath: string | null;
    duration: number;
}
export declare class NarrationService {
    /**
     * Process narration for a single scene
     */
    processSceneNarration(params: ProcessNarrationParams): Promise<ProcessNarrationResult>;
    /**
     * Merge voice settings with defaults
     */
    private mergeVoiceSettings;
    /**
     * Get audio duration from WAV file
     * This is a placeholder - actual implementation would read WAV header
     */
    private getAudioDuration;
    /**
     * Extract all narration texts from scenes for pre-processing
     */
    extractNarrationTexts(scenes: Scene[]): Array<{
        sceneId: string;
        narration: Narration;
    }>;
    /**
     * Pre-generate all narrations for a project
     * This can be used for batch processing or warming up the cache
     */
    preGenerateNarrations(scenes: Scene[], settings: ProjectSettings, outputDir: string): Promise<Map<string, ProcessNarrationResult>>;
}
export declare const narrationService: NarrationService;
//# sourceMappingURL=narration.d.ts.map