export type TraceLintSeverity = 'error' | 'warn' | 'info'; export type TraceLintLayer = 'expectation' | 'boundary' | 'constraint'; export interface TraceEvent { name?: string; ts?: number; dur?: number; tdur?: number; cat?: string; ph?: string; pid?: number; tid?: number; id?: string | number; id2?: Record; s?: string; bp?: string; args?: Record; } export interface TraceDocument { metadata?: Record; traceEvents: TraceEvent[]; } export interface IntervalStats { count: number; minMs: number; maxMs: number; medianMs: number; meanMs: number; stdevMs: number; cv: number; } export interface TraceStats { eventNameCounts: Map; asyncTaskScheduleTimes: Map; timerFireTimes: number[]; resourceRequestTimes: Map; cpuFunctionSampleCounts: Map; beginFrameTimes: number[]; droppedFrameCount: number; rendererMainRunTasks: Array<{ durationMs: number; ts: number; tid: number; }>; parseCompileDurationsMs: number[]; totalGcScavengerTimeMs: number; heavyRendererMainEvents: Array<{ name: string; category: string | null; durationMs: number; }>; } export interface TraceLintOptions { repeatThreshold?: number; minIntervalMs?: number; maxIntervalMs?: number; frameBudgetMs?: number; maxFrameOverrunRatio?: number; longTaskThresholdMs?: number; maxMainThreadLongTasks?: number; allowedDroppedFrames?: number; maxParseCompileMs?: number; maxGcScavengerTimeMs?: number; enabledRuleIds?: readonly string[]; } export interface TraceLintResolvedOptions { repeatThreshold: number; minIntervalMs: number; maxIntervalMs: number; frameBudgetMs: number; maxFrameOverrunRatio: number; longTaskThresholdMs: number; maxMainThreadLongTasks: number; allowedDroppedFrames: number; maxParseCompileMs: number; maxGcScavengerTimeMs: number; } export interface TraceLintRuleContext { trace: TraceDocument; stats: TraceStats; options: TraceLintResolvedOptions; } export interface TraceLintFinding { ruleId: string; layer: TraceLintLayer; severity: TraceLintSeverity; message: string; occurrences?: number; evidence?: Record; } export interface TraceLintRule { id: string; layer: TraceLintLayer; description: string; defaultSeverity: TraceLintSeverity; check(context: TraceLintRuleContext): TraceLintFinding[]; } export interface FindingCountsByLayer { expectation: number; boundary: number; constraint: number; } export interface FindingCountsBySeverity { error: number; warn: number; info: number; } export interface TraceLintResult { filePath: string; findings: TraceLintFinding[]; stats: TraceStats; ruleCount: number; findingsByLayer: FindingCountsByLayer; findingsBySeverity: FindingCountsBySeverity; } //# sourceMappingURL=types.d.ts.map