import { ConsoleLineLogger } from '@handy-common-utils/misc-utils';
import { NarrationParagraph, NarrationScript } from './narration-script';
import { ScriptProcessor } from './script-processor';
import { ScriptProcessorFlags } from './script-processor-flags';
import { TtsService } from './tts-service';
/**
 * Class for generating narration.
 * Instance of this class can be used to generate narration audio for scripts by calling the `narrate(...)` method.
 *
 * @example
 * const ttsService = new AzureTtsService(...);
 * const ttsNarrator = new TtsNarrator(ttsService, './output-folder');
 * const script = await loadScript('./my-script.yml');
 * await ttsNarrator.narrate(script);
 * console.log(`One of the generated audio file is: ${script.chapters[0].sections[0].paragraphs[0].audioFilePath}`);
 */
export declare class TtsNarrator extends ScriptProcessor {
    protected audioFileFolder: string;
    /**
     * Constructor
     * @param ttsService The TTS service to be used for generating audio
     * @param audioFileFolder The folder that generated audio files will be placed
     * @param options Optional settings
     * @param cliConsole Optional logger
     */
    constructor(ttsService: TtsService, audioFileFolder: string, options?: Partial<ScriptProcessorFlags>, cliConsole?: ConsoleLineLogger);
    protected determineAudioFilePath(ssmlHash: string, _paragraph: NarrationParagraph): Promise<string>;
    /**
     * Generate narration for the script
     * @param script the input script which will also be modified for recording audioFilePath
     * @returns nothing
     */
    narrate(script: NarrationScript): Promise<void>;
}
//# sourceMappingURL=tts-narrator.d.ts.map