| export interface FrameScore { | |
| frame: number; | |
| fake_pct: number; | |
| } | |
| export interface AudioResult { | |
| available: boolean; | |
| result: 'HUMAN_VOICE' | 'AI_VOICE' | 'AV_MISMATCH' | 'NO_AUDIO'; | |
| confidence: number; | |
| fake_probability: number; | |
| } | |
| export interface MetadataCheck { | |
| ai_generated: boolean; | |
| c2pa_detected: boolean; | |
| tool_detected: string | null; | |
| } | |
| export interface VideoMetadata { | |
| frames_analyzed: number; | |
| frames_with_faces: number; | |
| video_duration_sec: number; | |
| video_fps: number; | |
| resolution: string; | |
| } | |
| export interface AnalysisResult { | |
| result: 'FAKE' | 'REAL'; | |
| confidence: number; | |
| details: string[]; | |
| frame_timeline: FrameScore[]; | |
| metadata: VideoMetadata; | |
| audio: AudioResult; | |
| metadata_check: MetadataCheck; | |
| processing_time_sec: number; | |
| cached: boolean; | |
| } | |
| export type AppState = 'hero' | 'upload' | 'processing' | 'result' | 'error'; | |