export interface TelemetryEvent { tool: string; outcome: 'ok' | 'error'; error_code?: string; latency_ms?: number; /** Coarse, non-identifying features only (e.g. AI source name, garment type, channel). */ coarse_features?: Record; } export type TelemetrySender = (events: TelemetryEvent[]) => Promise; export declare class Telemetry { private readonly enabled; private readonly sender?; private buffer; private readonly maxBuffer; constructor(enabled: boolean, sender?: TelemetrySender | undefined, maxBuffer?: number); isEnabled(): boolean; /** Record one event. Fire-and-forget; never throws. Flushes when the buffer fills. */ record(event: TelemetryEvent): void; /** Send + clear the buffer. Best-effort: swallows send failures. */ flush(): Promise; pending(): number; }