import { Request, XRay as AWSXRay } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSXRay> = AWSXRay[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSXRay, Extras> = AWSXRay[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class XRay {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "xray";
    readonly global: false;
    readonly category: "Developer Tools";
    readonly topLevelCalls: readonly ["getGroups", "getSamplingRules", "getSamplingStatisticSummaries"];
    batchGetTraces(params: {
        [K in keyof ParamsFrom<'batchGetTraces', {
            next?: string;
        }>]: ParamsFrom<'batchGetTraces', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'batchGetTraces'>]-?: ReturnTypeFrom<'batchGetTraces'>[K];
        }['Traces'];
    }>;
    createGroup: (params: ParamsFrom<'createGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createGroup'>>;
    createSamplingRule: (params: ParamsFrom<'createSamplingRule', Record<string, never>>) => Promise<ReturnTypeFrom<'createSamplingRule'>>;
    deleteGroup: (params: ParamsFrom<'deleteGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteGroup'>>;
    deleteSamplingRule: (params: ParamsFrom<'deleteSamplingRule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSamplingRule'>>;
    getEncryptionConfig: (params: ParamsFrom<'getEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getEncryptionConfig'>>;
    getGroup: (params: ParamsFrom<'getGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'getGroup'>>;
    getGroups(params: {
        [K in keyof ParamsFrom<'getGroups', {
            next?: string;
        }>]: ParamsFrom<'getGroups', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getGroups'>]-?: ReturnTypeFrom<'getGroups'>[K];
        }['Groups'];
    }>;
    getInsight: (params: ParamsFrom<'getInsight', Record<string, never>>) => Promise<ReturnTypeFrom<'getInsight'>>;
    getInsightEvents: (params: ParamsFrom<'getInsightEvents', Record<string, never>>) => Promise<ReturnTypeFrom<'getInsightEvents'>>;
    getInsightImpactGraph: (params: ParamsFrom<'getInsightImpactGraph', Record<string, never>>) => Promise<ReturnTypeFrom<'getInsightImpactGraph'>>;
    getInsightSummaries: (params: ParamsFrom<'getInsightSummaries', Record<string, never>>) => Promise<ReturnTypeFrom<'getInsightSummaries'>>;
    getSamplingRules(params: {
        [K in keyof ParamsFrom<'getSamplingRules', {
            next?: string;
        }>]: ParamsFrom<'getSamplingRules', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getSamplingRules'>]-?: ReturnTypeFrom<'getSamplingRules'>[K];
        }['SamplingRuleRecords'];
    }>;
    getSamplingStatisticSummaries(params: {
        [K in keyof ParamsFrom<'getSamplingStatisticSummaries', {
            next?: string;
        }>]: ParamsFrom<'getSamplingStatisticSummaries', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getSamplingStatisticSummaries'>]-?: ReturnTypeFrom<'getSamplingStatisticSummaries'>[K];
        }['SamplingStatisticSummaries'];
    }>;
    getSamplingTargets: (params: ParamsFrom<'getSamplingTargets', Record<string, never>>) => Promise<ReturnTypeFrom<'getSamplingTargets'>>;
    getServiceGraph(params: {
        [K in keyof ParamsFrom<'getServiceGraph', {
            next?: string;
        }>]: ParamsFrom<'getServiceGraph', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getServiceGraph'>]-?: ReturnTypeFrom<'getServiceGraph'>[K];
        }['Services'];
    }>;
    getTimeSeriesServiceStatistics(params: {
        [K in keyof ParamsFrom<'getTimeSeriesServiceStatistics', {
            next?: string;
        }>]: ParamsFrom<'getTimeSeriesServiceStatistics', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getTimeSeriesServiceStatistics'>]-?: ReturnTypeFrom<'getTimeSeriesServiceStatistics'>[K];
        }['TimeSeriesServiceStatistics'];
    }>;
    getTraceGraph(params: {
        [K in keyof ParamsFrom<'getTraceGraph', {
            next?: string;
        }>]: ParamsFrom<'getTraceGraph', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getTraceGraph'>]-?: ReturnTypeFrom<'getTraceGraph'>[K];
        }['Services'];
    }>;
    getTraceSummaries(params: {
        [K in keyof ParamsFrom<'getTraceSummaries', {
            next?: string;
        }>]: ParamsFrom<'getTraceSummaries', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getTraceSummaries'>]-?: ReturnTypeFrom<'getTraceSummaries'>[K];
        }['TraceSummaries'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    putEncryptionConfig: (params: ParamsFrom<'putEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'putEncryptionConfig'>>;
    putTelemetryRecords: (params: ParamsFrom<'putTelemetryRecords', Record<string, never>>) => Promise<ReturnTypeFrom<'putTelemetryRecords'>>;
    putTraceSegments: (params: ParamsFrom<'putTraceSegments', Record<string, never>>) => Promise<ReturnTypeFrom<'putTraceSegments'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateGroup: (params: ParamsFrom<'updateGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateGroup'>>;
    updateSamplingRule: (params: ParamsFrom<'updateSamplingRule', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSamplingRule'>>;
    static fromClient(client: AWSXRay): XRay;
    static client(options?: AWSXRay.Types.ClientConfiguration): XRay;
}
export {};
