import { T as TelemetryKind, a as TelemetryModel, b as TelemetrySource, c as TelemetrySink } from '../sink-fetch-B1Yg4Til.js';
export { F as FanoutTelemetrySink, H as HttpTelemetrySink, I as InMemoryTelemetrySink, N as NullTelemetrySink, d as TELEMETRY_SCHEMA_VERSION, e as TelemetryEnvelope } from '../sink-fetch-B1Yg4Til.js';

/**
 * 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`.
 */

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;
}
declare class TelemetryClient {
    private readonly sink;
    private readonly defaultSource;
    constructor(sink: TelemetrySink, defaultSource: TelemetrySource);
    emit(args: EmitArgs): void;
    close(): Promise<void>;
}
declare const SECRET_FLAGS: Set<string>;
/** Strip likely-secret values from argv, preserving structure. */
declare function sanitiseArgv(argv: string[]): string[];

export { type EmitArgs, SECRET_FLAGS, TelemetryClient, TelemetryKind, TelemetryModel, TelemetrySink, TelemetrySource, sanitiseArgv };
