import type { Ref } from "vue"; import type { TerminalRenderPlanes } from "../core/render-plane.js"; import type { TerminalEventRecord } from "../events/recording.js"; import type { DomRendererSyncFlushDecision } from "../renderer/dom/dom-renderer.js"; export type TraceRecord = Readonly<{ type: "event"; at: number; event: TerminalEventRecord; }> | Readonly<{ type: "focus"; at: number; prev: string | null; next: string | null; }> | Readonly<{ type: "commit"; at: number; dirtyRows: readonly number[] | null; planes: TerminalRenderPlanes | null; sync?: boolean; rendererSyncFlush?: DomRendererSyncFlushDecision | null; focusedId: string | null; }> | Readonly<{ type: "selection-copy"; at: number; rows: number; chars: number; ok: boolean; error?: string; }>; export type TraceStore = Readonly<{ enabled: Ref; records: TraceRecord[]; push: (record: TraceRecord) => void; clear: () => void; snapshot: () => TraceRecord[]; }>; export declare function createTraceStore(opts?: Readonly<{ enabled?: boolean; max?: number; }>): TraceStore;