import type { SpanProcessor } from "#compiled/@vercel/otel/index.js";
import { type SpanExportPolicy } from "#tracing/span-export-policy.js";
/**
 * Puts one destination's content policy in front of it.
 *
 * Accepted traces carry content before they reach destination policies. This
 * cannot strip an attribute in place: the span object is shared with every
 * processor in the pipeline, and editing it would strip the attribute
 * everywhere. So it gives the destination a facade whose attributes omit what
 * its policy redacted.
 *
 * One facade follows the original from start through end. This preserves the
 * object identity stateful processors key on without ever exposing the original
 * span or its attribute map. Methods stay bound to the original, so private SDK
 * state remains reachable without eve knowing that SDK's concrete span shape.
 *
 * @internal
 */
export declare function contentFilteringProcessor(downstream: SpanProcessor, exportPolicy?: SpanExportPolicy): SpanProcessor;
