import type { ChannelAudience } from "#shared/channel-audience.js";
import { type InstrumentationDecision } from "#shared/instrumentation-decision.js";
/** @deprecated Use `TraceCapturePolicy` to select directional content. */
export type InstrumentationCapture = "content" | "metadata";
export interface TraceCaptureContext {
    readonly agentName: string;
    readonly audience: ChannelAudience;
    readonly channelType?: string;
}
export type TracePolicyDecision = {
    readonly emit: false;
} | {
    readonly emit: true;
    readonly recordInputs: boolean;
    readonly recordOutputs: boolean;
};
export type TraceCapturePolicy = (trace: TraceCaptureContext) => TracePolicyDecision | boolean;
export declare function legacyCaptureTracePolicy(capture: InstrumentationCapture | undefined): TraceCapturePolicy | undefined;
export declare function resolveTracePolicy(policy: TraceCapturePolicy | undefined, trace: TraceCaptureContext, onError?: (error: unknown) => void): InstrumentationDecision;
export declare function resolveTracePolicyDecision(decision: TracePolicyDecision | boolean, audience: ChannelAudience): InstrumentationDecision;
