import { Attributes } from '@opentelemetry/api';
import { Resource } from '@opentelemetry/resources';
import { SamplingStatisticsDocument, TargetMap } from './remote-sampler.types';
import { SamplingRuleApplier } from './sampling-rule-applier';
export declare const DEFAULT_TARGET_POLLING_INTERVAL_SECONDS: number;
export declare class RuleCache {
    private ruleAppliers;
    private lastUpdatedEpochMillis;
    private samplerResource;
    constructor(samplerResource: Resource);
    isExpired(): boolean;
    getMatchedRule(attributes: Attributes): SamplingRuleApplier | undefined;
    private sortRulesByPriority;
    updateRules(newRuleAppliers: SamplingRuleApplier[]): void;
    createSamplingStatisticsDocuments(clientId: string): SamplingStatisticsDocument[];
    updateTargets(targetDocuments: TargetMap, lastRuleModification: number): [boolean, number];
}
//# sourceMappingURL=rule-cache.d.ts.map