import { Sampler, SamplingResult, Context, Attributes, Link } from '@opentelemetry/api'; import type { TelemetryConfig } from './config.js'; export declare class AdaptiveSampler implements Sampler { private sampler; private targetRate; private currentRate; private traceCount; private sampleCount; private lastReset; private resetInterval; constructor(targetRate: number, initialRate?: number); shouldSample(context: Context, traceId: string, spanName: string, spanKind: number, attributes: Attributes, _links: Link[]): SamplingResult; toString(): string; private updateStats; } export declare class AttributeBasedSampler implements Sampler { private baseSampler; private attributeRules; constructor(baseSampler: Sampler, attributeRules: Array<{ attribute: string; value: string | RegExp; samplingRate: number; }>); shouldSample(context: Context, traceId: string, spanName: string, spanKind: number, attributes: Attributes, _links: Link[]): SamplingResult; toString(): string; } export declare function createSampler(config: TelemetryConfig): Sampler; export declare function createEnhancedSampler(config: TelemetryConfig): Sampler; export declare class PriorityBasedSampler implements Sampler { private baseSampler; private priorityAttribute; constructor(baseSampler: Sampler, priorityAttribute?: string); shouldSample(context: Context, traceId: string, spanName: string, spanKind: number, attributes: Attributes, _links: Link[]): SamplingResult; toString(): string; } //# sourceMappingURL=sampling.d.ts.map