/** What a host app must provide to receive interaction events. */ export interface TelemetrySink { /** * An interactive element was activated. * * `element` is the author-assigned, stable id — not label text, which * changes with copy and can carry user data. */ trackClick(element: string, route?: string): void; } /** * Install a telemetry sink. Call once at app startup; pass `null` to remove. */ export declare function registerTelemetry(sink: TelemetrySink | null): void; /** * Report an element activation. Safe to call unconditionally — it is a no-op * when no sink is registered. */ export declare function trackClick(element: string, route?: string): void; /** * Wrap a press handler so activating the element is reported first. * * Used by the primitives to implement `telemetryId`, and exported so app code * can tag anything the primitives do not cover. */ export declare function withClickTracking unknown>(element: string | undefined, handler: F): F; export declare function withClickTracking unknown>(element: string | undefined, handler: F | null | undefined): F | undefined; /** Test seam: drop the registered sink so cases cannot leak into each other. */ export declare function __resetTelemetryForTests(): void; //# sourceMappingURL=telemetry.d.ts.map