import type { FramePerfSample } from "./frame-perf.js"; export type FramePerf = FramePerfSample; export type ComponentPerf = Readonly<{ name: string; id?: string; phase: "source-read" | "measure" | "layout" | "render" | "cache-hit" | "cache-miss" | "scroll" | "parse"; durationMs: number; visibleStart?: number; visibleEnd?: number; overscanStart?: number; overscanEnd?: number; itemCount?: number; renderedCount?: number; cacheHit?: number; cacheMiss?: number; width?: number; version?: string | number; reason?: string; }>; export type TuiPerfEvent = Readonly<{ type: string; ts?: number; component?: string; id?: string; data?: Record; }>; export type TuiPerfSink = Readonly<{ onFramePerf: (sample: FramePerfSample) => void; onComponentPerf?: (sample: ComponentPerf) => void; onEvent?: (event: TuiPerfEvent) => void; dispose?: () => void; }>; export type TuiPerfJsonlWriter = Readonly<{ appendFileSync?: (path: string, data: string) => void; }>; export type CreateJsonlPerfSinkOptions = Readonly<{ file?: string; fileWriter?: TuiPerfJsonlWriter | null; write?: (line: string) => void; sampleRate?: number; includeComponents?: boolean; includeEvents?: boolean; }>; export type InstallTuiPerfOptions = Readonly<{ enabled?: boolean; sink?: TuiPerfSink | null; debugOverlay?: boolean; }>; type InstalledTuiPerf = Readonly<{ enabled: boolean; sink: TuiPerfSink | null; }>; export declare function createJsonlPerfSink(options?: CreateJsonlPerfSinkOptions): TuiPerfSink; export declare function installTuiPerf(options?: InstallTuiPerfOptions): () => void; export declare function getInstalledTuiPerf(): InstalledTuiPerf; export {};