import type { FlushPayload } from './types';
interface AnyValue {
    stringValue?: string;
    intValue?: number;
    doubleValue?: number;
}
interface KV {
    key: string;
    value: AnyValue;
}
interface OtlpEnvelope {
    resourceLogs: Array<{
        resource: {
            attributes: KV[];
        };
        scopeLogs: Array<{
            scope: {
                name: string;
            };
            logRecords: Array<{
                timeUnixNano: string;
                observedTimeUnixNano: string;
                severityText: 'INFO';
                body: AnyValue;
                attributes: KV[];
            }>;
        }>;
    }>;
}
/**
 * @internal — exposed for unit testing only. Production code should use createOtlpEmitter.
 */
export declare function buildOtlpPayload(flush: FlushPayload): OtlpEnvelope;
export interface OtlpEmitterConfig {
    endpoint: string;
    fetchImpl?: typeof fetch;
}
export declare function createOtlpEmitter(cfg: OtlpEmitterConfig): (p: FlushPayload) => Promise<void>;
export {};
