import { Request, DataExchange as AWSDataExchange } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSDataExchange> = AWSDataExchange[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSDataExchange, Extras> = AWSDataExchange[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class DataExchange {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "dataexchange";
    readonly global: false;
    readonly category: "Analytics";
    readonly topLevelCalls: readonly ["listDataSets", "listEventActions", "listJobs"];
    cancelJob: (params: ParamsFrom<'cancelJob', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelJob'>>;
    createDataSet: (params: ParamsFrom<'createDataSet', Record<string, never>>) => Promise<ReturnTypeFrom<'createDataSet'>>;
    createEventAction: (params: ParamsFrom<'createEventAction', Record<string, never>>) => Promise<ReturnTypeFrom<'createEventAction'>>;
    createJob: (params: ParamsFrom<'createJob', Record<string, never>>) => Promise<ReturnTypeFrom<'createJob'>>;
    createRevision: (params: ParamsFrom<'createRevision', Record<string, never>>) => Promise<ReturnTypeFrom<'createRevision'>>;
    deleteAsset: (params: ParamsFrom<'deleteAsset', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAsset'>>;
    deleteDataSet: (params: ParamsFrom<'deleteDataSet', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDataSet'>>;
    deleteEventAction: (params: ParamsFrom<'deleteEventAction', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteEventAction'>>;
    deleteRevision: (params: ParamsFrom<'deleteRevision', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRevision'>>;
    getAsset: (params: ParamsFrom<'getAsset', Record<string, never>>) => Promise<ReturnTypeFrom<'getAsset'>>;
    getDataSet: (params: ParamsFrom<'getDataSet', Record<string, never>>) => Promise<ReturnTypeFrom<'getDataSet'>>;
    getEventAction: (params: ParamsFrom<'getEventAction', Record<string, never>>) => Promise<ReturnTypeFrom<'getEventAction'>>;
    getJob: (params: ParamsFrom<'getJob', Record<string, never>>) => Promise<ReturnTypeFrom<'getJob'>>;
    getRevision: (params: ParamsFrom<'getRevision', Record<string, never>>) => Promise<ReturnTypeFrom<'getRevision'>>;
    listDataSetRevisions(params: {
        [K in keyof ParamsFrom<'listDataSetRevisions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDataSetRevisions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDataSetRevisions'>]-?: ReturnTypeFrom<'listDataSetRevisions'>[K];
        }['Revisions'];
    }>;
    listDataSets(params: {
        [K in keyof ParamsFrom<'listDataSets', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDataSets', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDataSets'>]-?: ReturnTypeFrom<'listDataSets'>[K];
        }['DataSets'];
    }>;
    listEventActions(params: {
        [K in keyof ParamsFrom<'listEventActions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listEventActions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listEventActions'>]-?: ReturnTypeFrom<'listEventActions'>[K];
        }['EventActions'];
    }>;
    listJobs(params: {
        [K in keyof ParamsFrom<'listJobs', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listJobs', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listJobs'>]-?: ReturnTypeFrom<'listJobs'>[K];
        }['Jobs'];
    }>;
    listRevisionAssets(params: {
        [K in keyof ParamsFrom<'listRevisionAssets', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRevisionAssets', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRevisionAssets'>]-?: ReturnTypeFrom<'listRevisionAssets'>[K];
        }['Assets'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    revokeRevision: (params: ParamsFrom<'revokeRevision', Record<string, never>>) => Promise<ReturnTypeFrom<'revokeRevision'>>;
    sendApiAsset: (params: ParamsFrom<'sendApiAsset', Record<string, never>>) => Promise<ReturnTypeFrom<'sendApiAsset'>>;
    startJob: (params: ParamsFrom<'startJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startJob'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateAsset: (params: ParamsFrom<'updateAsset', Record<string, never>>) => Promise<ReturnTypeFrom<'updateAsset'>>;
    updateDataSet: (params: ParamsFrom<'updateDataSet', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDataSet'>>;
    updateEventAction: (params: ParamsFrom<'updateEventAction', Record<string, never>>) => Promise<ReturnTypeFrom<'updateEventAction'>>;
    updateRevision: (params: ParamsFrom<'updateRevision', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRevision'>>;
    static fromClient(client: AWSDataExchange): DataExchange;
    static client(options?: AWSDataExchange.Types.ClientConfiguration): DataExchange;
}
export {};
