import type { TtsSegment } from './tts.js'; export interface MultiVoiceSegment { speaker: string; text: string; } /** A scene's narration: plain text, or multi-voice speaker segments. */ export type SceneText = string | MultiVoiceSegment[]; export interface SceneTranscript { sceneNumber: number; text: SceneText; hasSpeech: boolean; } export interface LoadedTranscript { fullText: string; sceneTranscripts: SceneTranscript[]; warnings: string[]; } /** * Normalize a parsed transcript JSON into {@link LoadedTranscript}. Supports * the standalone and SEALCAM+-embedded shapes; anything else yields an empty * transcript with a warning (mirrors the Python's logged warning). */ export declare function parseTranscript(data: unknown): LoadedTranscript; /** * Parse `editable_transcript.json`-style per-scene overrides into a * sceneNumber → text map. Non-numeric scene keys are skipped with a warning * (the Python would have thrown on `int(key)`). */ export declare function parseEditedTranscript(data: unknown): { edits: Map; warnings: string[]; }; export interface SceneTextEntry { sceneNumber: number; text: SceneText; edited: boolean; } /** * Extract per-scene text, applying edits and skips — the Python * `get_scene_texts`. With no per-scene data, the full text becomes a single * scene 1 (the Python fallback). */ export declare function sceneTexts(transcript: LoadedTranscript, options?: { edits?: Map; skipScenes?: Set; }): SceneTextEntry[]; /** * Resolve a transcript (plus optional edits) into TTS segments. Multi-voice * scenes are flattened to one joined text with a warning; scenes with no * speech are skipped (the Python's `has_speech`). */ export declare function transcriptToTtsSegments(transcript: LoadedTranscript, options?: { edits?: Map; skipScenes?: Set; }): { segments: TtsSegment[]; warnings: string[]; }; /** Read + parse a transcript file (standalone or SEALCAM+-embedded shape). */ export declare function loadTranscriptFile(path: string): Promise; /** Read + parse an editable-transcript overrides file. */ export declare function loadEditedTranscriptFile(path: string): Promise<{ edits: Map; warnings: string[]; }>; //# sourceMappingURL=transcript.d.ts.map