import type chalkType from 'chalk';
import type promptsFunc from 'prompts';
import { ConsoleLineLogger } from '@handy-common-utils/misc-utils';
import { MultiRange } from 'multi-integer-range';
import type { ScriptProcessorFlags } from './script-processor-flags';
import { NarrationParagraph, NarrationScript } from './narration-script';
import { AudioGenerationOptions, TtsService } from './tts-service';
export declare class ScriptProcessor {
    protected scriptFilePath: string;
    protected flags: ScriptProcessorFlags;
    protected _prompts: typeof promptsFunc | undefined | null;
    protected _chalk: typeof chalkType | undefined | null;
    protected cliConsole: ConsoleLineLogger;
    protected ttsService: TtsService;
    protected audioGenerationOptions: Omit<AudioGenerationOptions, 'outputFilePath'> | undefined;
    protected _script: NarrationScript;
    protected chapterRange: MultiRange | undefined;
    protected sectionRange: MultiRange | undefined;
    constructor(scriptFilePath: string, flags: ScriptProcessorFlags, cliConsole?: ConsoleLineLogger);
    /**
     * prompts function, or null caused by library not available
     */
    protected get prompts(): typeof promptsFunc | null | undefined;
    /**
     * chalk, or null caused by library not available
     */
    protected get chalk(): typeof promptsFunc | null | undefined;
    protected hash(ssml: string, _paragraph: NarrationParagraph): string;
    protected loadScriptIfNeeded(): Promise<void>;
    protected parseRanges(): void;
    protected initialiseTtsServiceIfNeeded(): Promise<void>;
    protected determineAudioFilePath(ssmlHash: string, _paragraph: NarrationParagraph): Promise<string>;
    protected processGeneratedAudioFile(audioFilePath: string): Promise<string>;
    run(reconstructedCommandLine?: string): Promise<void>;
    runWithoutCatch(reconstructedCommandLine?: string): Promise<void>;
    get script(): NarrationScript;
}
//# sourceMappingURL=script-processor.d.ts.map