import { Request, Snowball as AWSSnowball } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSSnowball> = AWSSnowball[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSSnowball, Extras> = AWSSnowball[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Snowball {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "snowball";
    readonly global: false;
    readonly category: "Migration and Transfer";
    readonly topLevelCalls: readonly ["describeAddresses", "listJobs"];
    cancelCluster: (params: ParamsFrom<'cancelCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelCluster'>>;
    cancelJob: (params: ParamsFrom<'cancelJob', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelJob'>>;
    createAddress: (params: ParamsFrom<'createAddress', Record<string, never>>) => Promise<ReturnTypeFrom<'createAddress'>>;
    createCluster: (params: ParamsFrom<'createCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'createCluster'>>;
    createJob: (params: ParamsFrom<'createJob', Record<string, never>>) => Promise<ReturnTypeFrom<'createJob'>>;
    createLongTermPricing: (params: ParamsFrom<'createLongTermPricing', Record<string, never>>) => Promise<ReturnTypeFrom<'createLongTermPricing'>>;
    createReturnShippingLabel: (params: ParamsFrom<'createReturnShippingLabel', Record<string, never>>) => Promise<ReturnTypeFrom<'createReturnShippingLabel'>>;
    describeAddress: (params: ParamsFrom<'describeAddress', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAddress'>>;
    describeAddresses(params: {
        [K in keyof ParamsFrom<'describeAddresses', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeAddresses', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeAddresses'>]-?: ReturnTypeFrom<'describeAddresses'>[K];
        }['Addresses'];
    }>;
    describeCluster: (params: ParamsFrom<'describeCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCluster'>>;
    describeJob: (params: ParamsFrom<'describeJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeJob'>>;
    describeReturnShippingLabel: (params: ParamsFrom<'describeReturnShippingLabel', Record<string, never>>) => Promise<ReturnTypeFrom<'describeReturnShippingLabel'>>;
    getJobManifest: (params: ParamsFrom<'getJobManifest', Record<string, never>>) => Promise<ReturnTypeFrom<'getJobManifest'>>;
    getJobUnlockCode: (params: ParamsFrom<'getJobUnlockCode', Record<string, never>>) => Promise<ReturnTypeFrom<'getJobUnlockCode'>>;
    getSnowballUsage: (params: ParamsFrom<'getSnowballUsage', Record<string, never>>) => Promise<ReturnTypeFrom<'getSnowballUsage'>>;
    getSoftwareUpdates: (params: ParamsFrom<'getSoftwareUpdates', Record<string, never>>) => Promise<ReturnTypeFrom<'getSoftwareUpdates'>>;
    listClusterJobs: (params: ParamsFrom<'listClusterJobs', Record<string, never>>) => Promise<ReturnTypeFrom<'listClusterJobs'>>;
    listClusters: (params: ParamsFrom<'listClusters', Record<string, never>>) => Promise<ReturnTypeFrom<'listClusters'>>;
    listCompatibleImages: (params: ParamsFrom<'listCompatibleImages', Record<string, never>>) => Promise<ReturnTypeFrom<'listCompatibleImages'>>;
    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];
        }['JobListEntries'];
    }>;
    listLongTermPricing: (params: ParamsFrom<'listLongTermPricing', Record<string, never>>) => Promise<ReturnTypeFrom<'listLongTermPricing'>>;
    updateCluster: (params: ParamsFrom<'updateCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'updateCluster'>>;
    updateJob: (params: ParamsFrom<'updateJob', Record<string, never>>) => Promise<ReturnTypeFrom<'updateJob'>>;
    updateJobShipmentState: (params: ParamsFrom<'updateJobShipmentState', Record<string, never>>) => Promise<ReturnTypeFrom<'updateJobShipmentState'>>;
    updateLongTermPricing: (params: ParamsFrom<'updateLongTermPricing', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLongTermPricing'>>;
    static fromClient(client: AWSSnowball): Snowball;
    static client(options?: AWSSnowball.Types.ClientConfiguration): Snowball;
}
export {};
