import { Attributes, Context, Link, SpanKind } from '@opentelemetry/api';
import { Sampler, SamplingResult } from '@opentelemetry/sdk-trace-base';
import { AwsXRayRemoteSamplerConfig } from './remote-sampler.types';
export declare class AwsXRayRemoteSampler implements Sampler {
    private _root;
    constructor(samplerConfig: AwsXRayRemoteSamplerConfig);
    shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
    toString(): string;
}
export declare class _AwsXRayRemoteSampler implements Sampler {
    private rulePollingIntervalMillis;
    private targetPollingInterval;
    private awsProxyEndpoint;
    private ruleCache;
    private fallbackSampler;
    private samplerDiag;
    private rulePoller;
    private targetPoller;
    private clientId;
    private rulePollingJitterMillis;
    private targetPollingJitterMillis;
    private samplingClient;
    constructor(samplerConfig: AwsXRayRemoteSamplerConfig);
    getDefaultTargetPollingInterval(): number;
    shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
    toString(): string;
    private startSamplingRulesPoller;
    private startSamplingTargetsPoller;
    private getAndUpdateSamplingTargets;
    private getAndUpdateSamplingRules;
    private updateSamplingRules;
    private updateSamplingTargets;
    private static generateClientId;
}
//# sourceMappingURL=aws-xray-remote-sampler.d.ts.map