import { Request, SnowDeviceManagement as AWSSnowDeviceManagement } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSSnowDeviceManagement> = AWSSnowDeviceManagement[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSSnowDeviceManagement, Extras> = AWSSnowDeviceManagement[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class SnowDeviceManagement {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "snow-device-management";
    readonly global: false;
    readonly category: "Migration and Transfer";
    readonly topLevelCalls: readonly ["listDevices", "listTasks"];
    cancelTask: (params: ParamsFrom<'cancelTask', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelTask'>>;
    createTask: (params: ParamsFrom<'createTask', Record<string, never>>) => Promise<ReturnTypeFrom<'createTask'>>;
    describeDevice: (params: ParamsFrom<'describeDevice', Record<string, never>>) => Promise<ReturnTypeFrom<'describeDevice'>>;
    describeDeviceEc2Instances: (params: ParamsFrom<'describeDeviceEc2Instances', Record<string, never>>) => Promise<ReturnTypeFrom<'describeDeviceEc2Instances'>>;
    describeExecution: (params: ParamsFrom<'describeExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'describeExecution'>>;
    describeTask: (params: ParamsFrom<'describeTask', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTask'>>;
    listDeviceResources(params: {
        [K in keyof ParamsFrom<'listDeviceResources', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDeviceResources', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDeviceResources'>]-?: ReturnTypeFrom<'listDeviceResources'>[K];
        }['resources'];
    }>;
    listDevices(params: {
        [K in keyof ParamsFrom<'listDevices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDevices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDevices'>]-?: ReturnTypeFrom<'listDevices'>[K];
        }['devices'];
    }>;
    listExecutions(params: {
        [K in keyof ParamsFrom<'listExecutions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listExecutions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listExecutions'>]-?: ReturnTypeFrom<'listExecutions'>[K];
        }['executions'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    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'];
    }>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    static fromClient(client: AWSSnowDeviceManagement): SnowDeviceManagement;
    static client(options?: AWSSnowDeviceManagement.Types.ClientConfiguration): SnowDeviceManagement;
}
export {};
