import { Resource } from '@opentelemetry/resources';
export interface AwsXRayRemoteSamplerConfig {
    resource: Resource;
    endpoint?: string;
    pollingInterval?: number;
}
export interface ISamplingRule {
    RuleName?: string;
    RuleARN?: string;
    Priority: number;
    ReservoirSize: number;
    FixedRate: number;
    ServiceName: string;
    ServiceType: string;
    Host: string;
    HTTPMethod: string;
    URLPath: string;
    ResourceARN: string;
    Attributes?: {
        [key: string]: string;
    };
    Version: number;
}
export interface SamplingRuleRecord {
    CreatedAt?: number;
    ModifiedAt?: number;
    SamplingRule?: ISamplingRule;
}
export interface GetSamplingRulesResponse {
    NextToken?: string;
    SamplingRuleRecords?: SamplingRuleRecord[];
}
export interface ISamplingStatistics {
    RequestCount: number;
    SampleCount: number;
    BorrowCount: number;
}
export interface SamplingStatisticsDocument {
    ClientID: string;
    RuleName: string;
    RequestCount: number;
    BorrowCount: number;
    SampledCount: number;
    Timestamp: number;
}
export interface SamplingTargetDocument {
    FixedRate: number;
    Interval?: number | null;
    ReservoirQuota?: number | null;
    ReservoirQuotaTTL?: number | null;
    RuleName: string;
}
export interface UnprocessedStatistic {
    ErrorCode: string;
    Message: string;
    RuleName: string;
}
export interface GetSamplingTargetsBody {
    SamplingStatisticsDocuments: SamplingStatisticsDocument[];
}
export interface GetSamplingTargetsResponse {
    LastRuleModification: number;
    SamplingTargetDocuments: SamplingTargetDocument[];
    UnprocessedStatistics: UnprocessedStatistic[];
}
export interface TargetMap {
    [targetName: string]: SamplingTargetDocument;
}
//# sourceMappingURL=remote-sampler.types.d.ts.map