import { Page } from 'puppeteer';
import { IAction } from '@fullstackcraftllc/codevideo-types';

declare class VideoGenerator {
    private trueAudioStartTime;
    private actions;
    private url;
    private actionsAudioDirectory;
    private forceOverwriteAudioFiles;
    private textToSpeechOption;
    private videoFile;
    private audioStartTimes;
    initialize: () => Promise<void>;
    playAudioInPuppeteer: (page: Page, audioHash: string, filePath: string) => Promise<void>;
    runPuppeteerAutomation: (url: string) => Promise<void>;
    makeVideo: () => Promise<void>;
    getVideoAsBuffer: () => Promise<Buffer>;
}

type TextToSpeechOptions = 'sayjs' | 'elevenlabs' | 'openai' | 'festival';

declare const generateVideoFromActions: (actions: Array<IAction>, textToSpeechOption: TextToSpeechOptions) => Promise<Buffer>;

export { type TextToSpeechOptions, VideoGenerator, generateVideoFromActions };
