/**
 * Telemetry client — thin wrapper that builds envelopes from `EmitArgs` and
 * delegates to a `TelemetrySink`. Pure logic; no I/O. Use this from any
 * runtime — Workers, Node, browser — and choose the sink accordingly.
 *
 * For an opinionated singleton with env-var-driven sink wiring (the bad CLI
 * pattern), see `./node-client.ts`.
 */
import type { TelemetryKind, TelemetryModel, TelemetrySource } from './schema';
import type { TelemetrySink } from './sink-fetch';
export interface EmitArgs {
    kind: TelemetryKind;
    runId: string;
    parentRunId?: string;
    ok: boolean;
    durationMs: number;
    data?: Record<string, unknown>;
    metrics?: Record<string, number>;
    tags?: Record<string, string>;
    model?: TelemetryModel;
    error?: string;
    /** Override the source for this envelope. Falls back to `defaultSource`. */
    source?: TelemetrySource;
}
export declare class TelemetryClient {
    private readonly sink;
    private readonly defaultSource;
    constructor(sink: TelemetrySink, defaultSource: TelemetrySource);
    emit(args: EmitArgs): void;
    close(): Promise<void>;
}
export declare const SECRET_FLAGS: Set<string>;
/** Strip likely-secret values from argv, preserving structure. */
export declare function sanitiseArgv(argv: string[]): string[];
//# sourceMappingURL=client.d.ts.map