import { type InspectOptions } from "node:util"; import type { FetchedTranscript, FetchedTranscriptSnippet } from "./transcripts.js"; export declare abstract class Formatter { abstract formatTranscript(transcript: FetchedTranscript, options?: unknown): string; abstract formatTranscripts(transcripts: FetchedTranscript[], options?: unknown): string; } export declare class PrettyPrintFormatter extends Formatter { formatTranscript(transcript: FetchedTranscript, options?: InspectOptions): string; formatTranscripts(transcripts: FetchedTranscript[], options?: InspectOptions): string; } export declare class JSONFormatter extends Formatter { formatTranscript(transcript: FetchedTranscript, options?: { replacer?: (key: string, value: unknown) => unknown; space?: number | string; }): string; formatTranscripts(transcripts: FetchedTranscript[], options?: { replacer?: (key: string, value: unknown) => unknown; space?: number | string; }): string; } export declare class TextFormatter extends Formatter { formatTranscript(transcript: FetchedTranscript): string; formatTranscripts(transcripts: FetchedTranscript[]): string; } declare abstract class TextBasedFormatter extends TextFormatter { protected abstract formatTranscriptHeader(lines: string[]): string; protected abstract formatTranscriptLine(index: number, timeText: string, snippet: FetchedTranscriptSnippet): string; protected abstract timestampSeparator: "," | "."; formatTranscript(transcript: FetchedTranscript): string; } export declare class SRTFormatter extends TextBasedFormatter { protected timestampSeparator: ","; protected formatTranscriptHeader(lines: string[]): string; protected formatTranscriptLine(index: number, timeText: string, snippet: FetchedTranscriptSnippet): string; } export declare class WebVTTFormatter extends TextBasedFormatter { protected timestampSeparator: "."; protected formatTranscriptHeader(lines: string[]): string; protected formatTranscriptLine(_index: number, timeText: string, snippet: FetchedTranscriptSnippet): string; } export declare class UnknownFormatterType extends Error { constructor(formatterType: string); } export declare class FormatterLoader { static readonly TYPES: { json: typeof JSONFormatter; pretty: typeof PrettyPrintFormatter; srt: typeof SRTFormatter; text: typeof TextFormatter; webvtt: typeof WebVTTFormatter; }; load(formatterType?: keyof typeof FormatterLoader.TYPES): Formatter; } export {};