import { AgentSpanIdGenerator } from "#tracing/agent-span-id-generator.js";
import type { OtelPipeline } from "#tracing/otel-declaration.js";
import { type AgentSamplingOperation } from "#tracing/agent-span-contract.js";
/**
 * Builds the process's one OpenTelemetry tracer provider from a merged
 * declaration, then proves it took the global slot.
 *
 * `registerOTel` reports a refused registration only through `diag`, which
 * goes nowhere unless `OTEL_LOG_LEVEL` is set, so a second caller would export
 * nothing and say nothing. eve primes its id generator and installs a private
 * propagator, then verifies both through the global APIs.
 */
export declare function registerOtelPipeline(input: {
    readonly pipeline: OtelPipeline;
    readonly serviceName: string;
}): RegisteredOtelPipeline;
/** Lifecycle retained from the providers that own every destination. */
export interface RegisteredOtelPipeline {
    readonly forceFlush: () => Promise<void>;
    readonly idGenerator: AgentSpanIdGenerator;
    /** Whether the installed sampler would record a trace with this id. */
    readonly samplesTrace: (traceId: string, operation?: AgentSamplingOperation) => boolean;
    readonly shutdown: () => Promise<void>;
}
