export interface QuickTestSummary { id: string; url: string; resultUrl: string; region: string; device: { id: string; name: string; formFactor: string; } | null; hasFinished: boolean; metrics?: Record; createdAt: string; completedAt: string | null; } export interface AnalysisResultObject { url: string; hasFinished: boolean; build?: { status: "pending" | "neutral" | "failure" | "success"; metrics?: any; oneLineSummary?: string; }; analysis?: { commitHash: string | null; commitBranch: string | null; buildTitle: string | null; }; page?: PageObject; } export interface PageObject { advancedSettings: string[]; device: { bandwidthKbps: number; cpuThrottling: number; formFactor: string; id: string; name: string; rtt: number; }; id: string; name: string; region: string; tags: string[]; testSchedules: { id: string; name: string; }[]; url: string; } export interface RequestListObject { url: string; method: string; status?: number; resourceType: string; protocol?: string; transferSize?: number; resourceSize?: number; duration?: number; startTime?: number; endTime?: number; waitStart?: number; waitEnd?: number; dnsStart?: number; dnsEnd?: number; tcpStart?: number; tcpEnd?: number; sslStart?: number; sslEnd?: number; ttfbStart?: number; ttfbEnd?: number; downloadStart?: number; downloadEnd?: number; renderBlocking?: string; initialPriority?: string; earlyHint: boolean; } export interface LighthouseReport { lighthouseVersion: string; requestedUrl: string; mainDocumentUrl: string; finalDisplayedUrl: string; finalUrl: string; fetchTime: string; gatherMode: string; runWarnings: string[]; userAgent: string; environment: { networkUserAgent: string; hostUserAgent: string; benchmarkIndex: number; credits?: Record; }; audits: Record; categories?: { performance?: LighthouseCategory; accessibility?: LighthouseCategory; "best-practices"?: LighthouseCategory; seo?: LighthouseCategory; pwa?: LighthouseCategory; }; categoryGroups?: Record; configSettings?: Record; timing?: { entries: { startTime: number; name: string; duration: number; entryType: string; }[]; total: number; }; i18n?: { rendererFormattedStrings: Record; }; stackPacks?: any[]; fullPageScreenshot?: { screenshot: { data: string; width: number; height: number; }; nodes?: Record; }; } export interface LighthouseAudit { id: string; title: string; description: string; score: number | null; scoreDisplayMode: string; numericValue?: number; numericUnit?: string; displayValue?: string; explanation?: string; errorMessage?: string; warnings?: string[]; details?: any; scoringOptions?: { p10?: number; median?: number; }; metricSavings?: Record; guidanceLevel?: number; } export interface LighthouseCategory { id: string; title: string; description?: string; score: number | null; manualDescription?: string; auditRefs: Array<{ id: string; weight: number; group?: string; acronym?: string; relevantAudits?: string[]; }>; }