UNPKG

@transcrobes/subs-convert

Version:

Convert subtitles from one format to another

128 lines 3.14 kB
export interface SubtitleStyles { align?: string; line?: string; position?: string; size?: string; [key: string]: string | undefined; } export interface SubtitleCaptions { frames?: number; popOn?: boolean; paintOn?: boolean; rollUpRows?: number; commands?: string; } export interface SubtitleEntry { id: string; timecode?: string; startMicro: number; endMicro: number; captions?: SubtitleCaptions; styles?: SubtitleStyles; text: string; } export interface SubtitleGlobal { language?: string; color?: string; textAlign?: string; } export interface SubtitleJSON { global?: SubtitleGlobal; body: SubtitleEntry[]; source?: unknown; } export interface SubtitleOptions { shiftTimecode?: number; sourceFps?: number; outputFps?: number; removeTextFormatting?: boolean; timecodeOverlapLimiter?: number | boolean; combineOverlapping?: boolean; startAtZeroHour?: boolean; } export interface ValidationOptions { startsAtZeroHour?: boolean; reversedTimecodes?: boolean; overlappingTimecodes?: boolean; formattedText?: boolean; } export interface ValidationIssue { id: string; timecode?: string; text?: string; } export interface ValidationStatus { success: boolean; startsAtZeroHour?: boolean; timecodeIssues?: { reversedTimecodes?: ValidationIssue[]; overlappingTimecodes?: ValidationIssue[]; }; formattedText?: ValidationIssue[]; invalidEntries?: ValidationIssue[]; invalidTimecodes?: ValidationIssue[]; invalidIndices?: { id: string; }[]; } export interface ParseResult { data: SubtitleJSON; status: ValidationStatus; } export interface ConversionResult { subtitle: string; status: ValidationStatus; } /** * WebVTT cue type (for use in webvtt modules) */ export interface WebVTTCue { identifier: string; start: number; end: number; text: string; styles: string; } /** * ParsedResult for WebVTT and similar modules */ export interface ParsedResult { valid: boolean; strict: boolean; cues: WebVTTCue[]; errors: Error[]; meta?: Record<string, string> | null; } export interface Segment { duration: number; cues: WebVTTCue[]; } export interface HlsSegment { filename: string; content: string; } export interface ParserOptions { meta?: boolean; strict?: boolean; } /** * SRT parsing options (used in srtEntries) */ export interface SrtEntryOptions { invalidEntries?: boolean; invalidTimecodes?: boolean; invalidIndices?: boolean; } /** * Accumulator for SRT parsing (used in srtEntries) */ export interface SrtAccumulator { currentIndex: number; validEntries: SubtitleEntry[]; status: ValidationStatus; } export declare const PARSE_EXTENSIONS: readonly [".srt", ".vtt", ".dfxp", ".ttml", ".scc", ".ass"]; export type ParseExtension = (typeof PARSE_EXTENSIONS)[number]; export declare const EXPORT_EXTENSIONS: readonly [".srt", ".vtt"]; export type ExportExtension = (typeof EXPORT_EXTENSIONS)[number]; //# sourceMappingURL=types.d.ts.map