export interface LogEntry { id?: string; type: 'network' | 'console' | 'error' | 'performance' | 'interaction' | 'annotation' | 'storage' | 'websocket' | 'sse'; timestamp: number; tabId?: number; tabUrl?: string; data: any; severity?: 'info' | 'warn' | 'error'; } export interface RecordingMetadata { totalLogs: number; logsByType: { network: number; console: number; interaction: number; annotation: number; performance: number; storage: number; websocket: number; sse: number; error: number; }; videoSize: number; videoType: string; videoDuration: number | null; userAgent: string; timestamp: number; } export interface StoredLogData { logs: LogEntry[]; metadata: RecordingMetadata; } export interface ApiLogResponse { id: number; title: string; description: string | null; severity: 'low' | 'medium' | 'high'; project_name: string | null; environment_name: string | null; folder_name: string | null; reporter: { id: number; username: string; first_name: string; last_name: string; email: string | null; } | null; assignee: { id: number; username: string; first_name: string; last_name: string; email: string | null; } | null; log_metadata: RecordingMetadata; video_file: string; log_url: string; created_at: string; updated_at: string; comments_count: number; } export interface NetworkLog { timestamp: number; method: string; url: string; requestBody: string; responseBody: string; status: number; duration: number; headers: [string, string][]; requestHeaders?: [string, string][]; responseHeaders?: [string, string][]; } export interface ConsoleLog { timestamp: number; type: 'log' | 'info' | 'warn' | 'error' | 'debug'; message: any[]; } export interface ErrorLog { timestamp: number; type: string; message: string; stack?: string; filename?: string; lineno?: number; colno?: number; } export interface PerformanceLog { timestamp: number; type: string; name: string; startTime: number; duration: number; } export interface InteractionLog { timestamp: number; type: 'click' | 'input' | 'scroll' | 'navigation'; element?: string; value?: string; coordinates?: { x: number; y: number; }; } export interface AnnotationLog { timestamp: number; type: 'note' | 'issue' | 'highlight'; text: string; } export interface StorageLog { timestamp: number; storageType: 'localStorage' | 'sessionStorage' | 'cookie' | 'indexedDB'; operation: 'get' | 'set' | 'remove' | 'clear'; key?: string; value?: string; oldValue?: string; } export interface SSEWebSocketLog { timestamp: number; type: 'sse' | 'websocket'; url?: string; eventType?: string; message?: string; direction?: 'incoming' | 'outgoing'; } export interface LogsData { network: NetworkLog[]; console: ConsoleLog[]; error: ErrorLog[]; performance: PerformanceLog[]; interaction: InteractionLog[]; annotation: AnnotationLog[]; storage: StorageLog[]; sse: SSEWebSocketLog[]; } export interface UserInfo { id: number; username: string; first_name: string; last_name: string; email: string | null; } export interface LogDataResponse { id: number; title: string; description: string | null; severity: 'low' | 'medium' | 'high'; project_name: string | null; environment_name: string | null; folder_name: string | null; reporter: UserInfo | null; assignee: UserInfo | null; video_file?: string; video_url?: string; log_json: { logs: LogsData; metadata: RecordingMetadata; rrwebEvents?: RRWebEvent[]; }; log_metadata: RecordingMetadata; rrwebEvents?: RRWebEvent[]; created_at: string; updated_at: string; } export interface TimelineEvent { timestamp: number; type: 'network' | 'console' | 'error' | 'interaction' | 'annotation'; data: any; description: string; } export interface SessionAnalysis { errorCount: number; mainErrors: ErrorLog[]; suspiciousRequests: NetworkLog[]; timeline: TimelineEvent[]; userActions: InteractionLog[]; summary: string; } export interface ErrorContext { error: ErrorLog; relatedLogs: ConsoleLog[]; networkContext: NetworkLog[]; userActionsBeforeError: InteractionLog[]; } export interface RRWebEvent { type: number; data: Record; timestamp: number; } export interface RRWebData { events: RRWebEvent[]; totalDuration: number; eventCount: number; hasFullSnapshot: boolean; } //# sourceMappingURL=logs.types.d.ts.map