import { Attributes, Context, Link, SpanKind } from '@opentelemetry/api';
import { Resource } from '@opentelemetry/resources';
import { SamplingResult } from '@opentelemetry/sdk-trace-base';
import { ISamplingRule, ISamplingStatistics, SamplingTargetDocument } from './remote-sampler.types';
import { SamplingRule } from './sampling-rule';
import { Statistics } from './statistics';
export declare class SamplingRuleApplier {
    samplingRule: SamplingRule;
    private reservoirSampler;
    private fixedRateSampler;
    private statistics;
    private borrowingEnabled;
    private reservoirExpiryTimeInMillis;
    constructor(samplingRule: ISamplingRule, statistics?: Statistics, target?: SamplingTargetDocument);
    withTarget(target: SamplingTargetDocument): SamplingRuleApplier;
    matches(attributes: Attributes, resource: Resource): boolean;
    shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
    snapshotStatistics(): ISamplingStatistics;
    private getArn;
    private getLambdaArn;
}
//# sourceMappingURL=sampling-rule-applier.d.ts.map