import { Signal } from '../types.js'; export declare const getTracerProxy: () => TracerProxy | undefined; export interface VisualizerLink { connected: boolean; version: number; node: VisualizerNode; } export interface TracerMeta { id: string | number; desc: string; params: string; tracer?: Tracer; } export declare enum TracerEventType { StartUpdate = "StartUpdate", EndUpdate = "EndUpdate", StartLoading = "StartLoading", EndLoading = "EndLoading", Connected = "Connected", Disconnected = "Disconnected", ConsumeState = "ConsumeState" } type StartUpdateEvent = { type: TracerEventType.StartUpdate; id: string | number; }; type EndUpdateEvent = { type: TracerEventType.EndUpdate; id: string | number; value: unknown; preserveChildren?: boolean; }; type StartLoadingEvent = { type: TracerEventType.StartLoading; id: string | number; }; type EndLoadingEvent = { type: TracerEventType.EndLoading; id: string | number; value: unknown; }; type ConnectedEvent = { type: TracerEventType.Connected; id: string | number; childId: string | number; nodeType: SignalType; name?: string; params?: string; }; type DisconnectedEvent = { type: TracerEventType.Disconnected; id: string | number; childId: string | number; }; type ConsumeStateEvent = { type: TracerEventType.ConsumeState; id: string | number; name: string; childId: string | number; value: unknown; setValue: (value: unknown) => void; }; type TracerEvent = StartUpdateEvent | EndUpdateEvent | StartLoadingEvent | EndLoadingEvent | ConnectedEvent | DisconnectedEvent | ConsumeStateEvent; export declare enum SignalType { State = "state", Reactive = "reactive", Watcher = "watcher" } export declare class VisualizerNode { private tracer; depth: number; type: SignalType; id: string | number; value: unknown; name?: string | undefined; params?: string | undefined; private _setValue?; private subscribers; private nextStateChildren; stateChildren: VisualizerNode[]; children: VisualizerLink[]; updating: boolean; loading: boolean; version: number; private updatingVersion; private didConnect; constructor(tracer: Tracer, depth: number, type: SignalType, id: string | number, value: unknown, name?: string | undefined, params?: string | undefined, _setValue?: ((value: unknown) => void) | undefined); get showParams(): boolean; get showValue(): boolean; get interactive(): boolean; setValue(value: unknown): void; connectChild(child: VisualizerNode): boolean; disconnectChild(childId: string | number): void; startUpdate(): void; endUpdate(value: unknown, preserveChildren?: boolean): void; startLoading(): void; endLoading(value: unknown): void; consumeState(id: string | number, name: string, value: unknown, setValue: (value: unknown) => void): void; notify(): void; subscribe(subscriber: () => void): () => void; } export declare class Tracer { showParams: boolean; showValue: boolean; interactive: boolean; private nodeMap; delay: number; maxDepth: number; private initialized; constructor(id: string | number, immediate?: boolean, showParams?: boolean, showValue?: boolean, interactive?: boolean); rootNode: VisualizerNode; private eventQueue; private currentFlush; emit(event: TracerEvent): void; handleEvent(event: TracerEvent, nextEvent?: TracerEvent): boolean; flush(): Promise; addListener(listener: () => void): () => void; } declare class TracerProxy { private tracers; constructor(); emit(event: TracerEvent): void; createTracer(id: string | number, immediate?: boolean): Tracer; removeTracer(tracer: Tracer): void; flush(): void; } export declare function setTracing(enabled: boolean): void; export declare function createTracer(_signal: Signal, immediate?: boolean): Tracer; export declare function createTracerFromId(id: string | number, immediate?: boolean): Tracer; export declare function removeTracer(tracer: Tracer): void; export {}; //# sourceMappingURL=trace.d.ts.map