import type { TerminalGraphicsProtocol } from "./terminal-graphics.js"; export type TerminalGraphicTraceEventType = "request" | "skip-hidden" | "skip-scrolling" | "cache-hit" | "cache-miss" | "cache-store" | "renderer-start" | "renderer-end" | "renderer-abort" | "renderer-error" | "validate-end" | "queue" | "queue-depth" | "queue-wait" | "queue-dedupe" | "clear" | "scroll-start" | "scroll-mark" | "scroll-idle"; export type TerminalGraphicTraceEvent = Readonly<{ type: TerminalGraphicTraceEventType; id: string; key?: string; protocol?: TerminalGraphicsProtocol; timestamp: number; durationMs?: number; bytes?: number; reason?: string; error?: string; active?: number; waiting?: number; cacheEntries?: number; cacheBytes?: number; }>; export type TerminalGraphicTraceMetrics = Readonly<{ requests: number; skippedHidden: number; skippedScrolling: number; cacheHits: number; cacheMisses: number; cacheStores: number; rendererRuns: number; rendererAborts: number; rendererErrors: number; queued: number; queueWaits: number; queueDeduped: number; cleared: number; bytesQueued: number; totalRendererMs: number; totalValidateMs: number; totalQueueWaitMs: number; maxQueueWaitMs: number; maxActiveRenders: number; maxWaitingRenders: number; maxCacheEntries: number; maxCacheBytes: number; scrollStarts: number; scrollMarks: number; scrollIdles: number; totalScrollMs: number; maxScrollMs: number; }>; export declare function nowTerminalGraphicTraceTime(): number; export declare function recordTerminalGraphicTrace(event: Omit & { timestamp?: number; }): void; export declare function getTerminalGraphicTraceMetrics(): TerminalGraphicTraceMetrics; export declare function resetTerminalGraphicTraceMetrics(): void; export declare function subscribeTerminalGraphicTrace(listener: (event: TerminalGraphicTraceEvent) => void): () => void;