/**
 * Workers-safe telemetry sinks — only `fetch` and pure JS. No `fs`, no
 * `child_process`. Safe to import from a Cloudflare Worker, Lambda, edge
 * function, or browser extension.
 *
 * For Node-only file persistence, import from '@tangle-network/agent-eval/telemetry/file'.
 */
import type { TelemetryEnvelope } from './schema';
export interface TelemetrySink {
    emit(envelope: TelemetryEnvelope): Promise<void> | void;
    close?(): Promise<void> | void;
}
/** Best-effort POST to a remote collector. Fire-and-forget; never throws. */
export declare class HttpTelemetrySink implements TelemetrySink {
    private readonly endpoint;
    private readonly bearer?;
    private inflight;
    constructor(endpoint: string, bearer?: string | undefined);
    emit(envelope: TelemetryEnvelope): void;
    close(): Promise<void>;
}
/** Fanout to multiple sinks — failures in one do not affect others. */
export declare class FanoutTelemetrySink implements TelemetrySink {
    private readonly sinks;
    constructor(sinks: TelemetrySink[]);
    emit(envelope: TelemetryEnvelope): void;
    close(): Promise<void>;
}
/** No-op sink — used when telemetry is explicitly disabled. */
export declare class NullTelemetrySink implements TelemetrySink {
    emit(): void;
}
/** In-memory sink — useful for tests + downstream adapters. */
export declare class InMemoryTelemetrySink implements TelemetrySink {
    readonly envelopes: TelemetryEnvelope[];
    emit(envelope: TelemetryEnvelope): void;
    clear(): void;
}
//# sourceMappingURL=sink-fetch.d.ts.map