import { Request, DataSync as AWSDataSync } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSDataSync> = AWSDataSync[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSDataSync, Extras> = AWSDataSync[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class DataSync {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "datasync";
    readonly global: false;
    readonly category: "Migration and Transfer";
    readonly topLevelCalls: readonly ["listAgents", "listLocations", "listTaskExecutions", "listTasks"];
    cancelTaskExecution: (params: ParamsFrom<'cancelTaskExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelTaskExecution'>>;
    createAgent: (params: ParamsFrom<'createAgent', Record<string, never>>) => Promise<ReturnTypeFrom<'createAgent'>>;
    createLocationEfs: (params: ParamsFrom<'createLocationEfs', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationEfs'>>;
    createLocationFsxLustre: (params: ParamsFrom<'createLocationFsxLustre', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationFsxLustre'>>;
    createLocationFsxOntap: (params: ParamsFrom<'createLocationFsxOntap', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationFsxOntap'>>;
    createLocationFsxOpenZfs: (params: ParamsFrom<'createLocationFsxOpenZfs', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationFsxOpenZfs'>>;
    createLocationFsxWindows: (params: ParamsFrom<'createLocationFsxWindows', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationFsxWindows'>>;
    createLocationHdfs: (params: ParamsFrom<'createLocationHdfs', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationHdfs'>>;
    createLocationNfs: (params: ParamsFrom<'createLocationNfs', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationNfs'>>;
    createLocationObjectStorage: (params: ParamsFrom<'createLocationObjectStorage', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationObjectStorage'>>;
    createLocationS3: (params: ParamsFrom<'createLocationS3', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationS3'>>;
    createLocationSmb: (params: ParamsFrom<'createLocationSmb', Record<string, never>>) => Promise<ReturnTypeFrom<'createLocationSmb'>>;
    createTask: (params: ParamsFrom<'createTask', Record<string, never>>) => Promise<ReturnTypeFrom<'createTask'>>;
    deleteAgent: (params: ParamsFrom<'deleteAgent', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAgent'>>;
    deleteLocation: (params: ParamsFrom<'deleteLocation', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLocation'>>;
    deleteTask: (params: ParamsFrom<'deleteTask', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTask'>>;
    describeAgent: (params: ParamsFrom<'describeAgent', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAgent'>>;
    describeLocationEfs: (params: ParamsFrom<'describeLocationEfs', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationEfs'>>;
    describeLocationFsxLustre: (params: ParamsFrom<'describeLocationFsxLustre', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationFsxLustre'>>;
    describeLocationFsxOntap: (params: ParamsFrom<'describeLocationFsxOntap', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationFsxOntap'>>;
    describeLocationFsxOpenZfs: (params: ParamsFrom<'describeLocationFsxOpenZfs', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationFsxOpenZfs'>>;
    describeLocationFsxWindows: (params: ParamsFrom<'describeLocationFsxWindows', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationFsxWindows'>>;
    describeLocationHdfs: (params: ParamsFrom<'describeLocationHdfs', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationHdfs'>>;
    describeLocationNfs: (params: ParamsFrom<'describeLocationNfs', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationNfs'>>;
    describeLocationObjectStorage: (params: ParamsFrom<'describeLocationObjectStorage', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationObjectStorage'>>;
    describeLocationS3: (params: ParamsFrom<'describeLocationS3', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationS3'>>;
    describeLocationSmb: (params: ParamsFrom<'describeLocationSmb', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLocationSmb'>>;
    describeTask: (params: ParamsFrom<'describeTask', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTask'>>;
    describeTaskExecution: (params: ParamsFrom<'describeTaskExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTaskExecution'>>;
    listAgents(params: {
        [K in keyof ParamsFrom<'listAgents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAgents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAgents'>]-?: ReturnTypeFrom<'listAgents'>[K];
        }['Agents'];
    }>;
    listLocations(params: {
        [K in keyof ParamsFrom<'listLocations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listLocations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listLocations'>]-?: ReturnTypeFrom<'listLocations'>[K];
        }['Locations'];
    }>;
    listTagsForResource(params: {
        [K in keyof ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTagsForResource'>]-?: ReturnTypeFrom<'listTagsForResource'>[K];
        }['Tags'];
    }>;
    listTaskExecutions(params: {
        [K in keyof ParamsFrom<'listTaskExecutions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTaskExecutions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTaskExecutions'>]-?: ReturnTypeFrom<'listTaskExecutions'>[K];
        }['TaskExecutions'];
    }>;
    listTasks(params: {
        [K in keyof ParamsFrom<'listTasks', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTasks', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTasks'>]-?: ReturnTypeFrom<'listTasks'>[K];
        }['Tasks'];
    }>;
    startTaskExecution: (params: ParamsFrom<'startTaskExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'startTaskExecution'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateAgent: (params: ParamsFrom<'updateAgent', Record<string, never>>) => Promise<ReturnTypeFrom<'updateAgent'>>;
    updateLocationHdfs: (params: ParamsFrom<'updateLocationHdfs', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLocationHdfs'>>;
    updateLocationNfs: (params: ParamsFrom<'updateLocationNfs', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLocationNfs'>>;
    updateLocationObjectStorage: (params: ParamsFrom<'updateLocationObjectStorage', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLocationObjectStorage'>>;
    updateLocationSmb: (params: ParamsFrom<'updateLocationSmb', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLocationSmb'>>;
    updateTask: (params: ParamsFrom<'updateTask', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTask'>>;
    updateTaskExecution: (params: ParamsFrom<'updateTaskExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTaskExecution'>>;
    static fromClient(client: AWSDataSync): DataSync;
    static client(options?: AWSDataSync.Types.ClientConfiguration): DataSync;
}
export {};
