export interface OpenRouterPricing { prompt: string; completion: string; request: string; image: string; } export interface OpenRouterModel { id: string; name: string; description: string; pricing: OpenRouterPricing; context_length: number; architecture: { modality: string; tokenizer: string; instruct_type: string | null; }; top_provider: { context_length: number | null; max_completion_tokens: number | null; is_moderated: boolean; }; created?: number; } export interface ModelTestResult { modelId: string; status: 'pending' | 'running' | 'success' | 'error'; // Test 1 latencyMs: number; tokensPerSecond: number; // Test 2 (Second answer) latencyMs2: number; tokensPerSecond2: number; errorMsg?: string; timestamp: number; } export type SortOption = 'name' | 'latency' | 'throughput' | 'context' | 'newest'; export interface AppState { apiKey: string; allModels: OpenRouterModel[]; freeModels: OpenRouterModel[]; testResults: Record; isTesting: boolean; progress: number; viewMode: 'list' | 'test'; }