export interface TranscriptSegment { text: string; duration: number; offset: number; videoId?: string; } export interface ResearchSourceMetadata { videoId: string; title: string; videoUrl: string; channelId: string | null; channelName: string | null; channelUrl: string | null; thumbnailUrl: string | null; } export interface ResearchTranscript { fullTranscript: TranscriptSegment[]; transcript: TranscriptSegment[]; source: ResearchSourceMetadata; } export interface TimeRange { start?: number; end?: number; } export interface SearchOptions { query: string; caseSensitive?: boolean; contextLines?: number; matchMode?: 'substring' | 'word'; } export interface TranscriptOptions { language?: string; timeRange?: TimeRange; search?: SearchOptions; segment?: { method: 'equal' | 'smart'; count: number; }; format?: 'raw' | 'timestamped' | 'merged'; includeMetadata?: boolean; } export interface TranscriptSummaryOptions { summaryLength?: 'short' | 'medium' | 'detailed'; includeKeywords?: boolean; includeTimestamps?: boolean; segmentSummaries?: boolean; } export interface VideoMetadata { id?: string | null; title?: string | null; channelId?: string | null; channelTitle?: string | null; publishedAt?: string | null; duration?: string | null; viewCount?: string | null; likeCount?: string | null; } export interface FormattedTranscript { segments: TranscriptSegment[]; totalSegments: number; duration: number; format: string; text?: string; metadata?: Array; } export declare class TranscriptError extends Error { videoId: string; options: TranscriptOptions; originalError: Error; constructor(params: { message: string; videoId: string; options: TranscriptOptions; originalError: Error; }); }