import { Request, Glacier as AWSGlacier } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSGlacier> = AWSGlacier[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSGlacier, Extras> = AWSGlacier[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Glacier {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "glacier";
    readonly global: false;
    readonly category: "Storage";
    readonly topLevelCalls: readonly ["listVaults"];
    abortMultipartUpload: (params: ParamsFrom<'abortMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'abortMultipartUpload'>>;
    abortVaultLock: (params: ParamsFrom<'abortVaultLock', Record<string, never>>) => Promise<ReturnTypeFrom<'abortVaultLock'>>;
    addTagsToVault: (params: ParamsFrom<'addTagsToVault', Record<string, never>>) => Promise<ReturnTypeFrom<'addTagsToVault'>>;
    completeMultipartUpload: (params: ParamsFrom<'completeMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'completeMultipartUpload'>>;
    completeVaultLock: (params: ParamsFrom<'completeVaultLock', Record<string, never>>) => Promise<ReturnTypeFrom<'completeVaultLock'>>;
    createVault: (params: ParamsFrom<'createVault', Record<string, never>>) => Promise<ReturnTypeFrom<'createVault'>>;
    deleteArchive: (params: ParamsFrom<'deleteArchive', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteArchive'>>;
    deleteVault: (params: ParamsFrom<'deleteVault', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVault'>>;
    deleteVaultAccessPolicy: (params: ParamsFrom<'deleteVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVaultAccessPolicy'>>;
    deleteVaultNotifications: (params: ParamsFrom<'deleteVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVaultNotifications'>>;
    describeJob: (params: ParamsFrom<'describeJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeJob'>>;
    describeVault: (params: ParamsFrom<'describeVault', Record<string, never>>) => Promise<ReturnTypeFrom<'describeVault'>>;
    getDataRetrievalPolicy: (params: ParamsFrom<'getDataRetrievalPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getDataRetrievalPolicy'>>;
    getJobOutput: (params: ParamsFrom<'getJobOutput', Record<string, never>>) => Promise<ReturnTypeFrom<'getJobOutput'>>;
    getVaultAccessPolicy: (params: ParamsFrom<'getVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getVaultAccessPolicy'>>;
    getVaultLock: (params: ParamsFrom<'getVaultLock', Record<string, never>>) => Promise<ReturnTypeFrom<'getVaultLock'>>;
    getVaultNotifications: (params: ParamsFrom<'getVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'getVaultNotifications'>>;
    initiateJob: (params: ParamsFrom<'initiateJob', Record<string, never>>) => Promise<ReturnTypeFrom<'initiateJob'>>;
    initiateMultipartUpload: (params: ParamsFrom<'initiateMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'initiateMultipartUpload'>>;
    initiateVaultLock: (params: ParamsFrom<'initiateVaultLock', Record<string, never>>) => Promise<ReturnTypeFrom<'initiateVaultLock'>>;
    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];
        }['JobList'];
    }>;
    listMultipartUploads(params: {
        [K in keyof ParamsFrom<'listMultipartUploads', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listMultipartUploads', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listMultipartUploads'>]-?: ReturnTypeFrom<'listMultipartUploads'>[K];
        }['UploadsList'];
    }>;
    listParts(params: {
        [K in keyof ParamsFrom<'listParts', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listParts', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listParts'>]-?: ReturnTypeFrom<'listParts'>[K];
        }['Parts'];
    }>;
    listProvisionedCapacity: (params: ParamsFrom<'listProvisionedCapacity', Record<string, never>>) => Promise<ReturnTypeFrom<'listProvisionedCapacity'>>;
    listTagsForVault: (params: ParamsFrom<'listTagsForVault', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForVault'>>;
    listVaults(params: {
        [K in keyof ParamsFrom<'listVaults', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVaults', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVaults'>]-?: ReturnTypeFrom<'listVaults'>[K];
        }['VaultList'];
    }>;
    purchaseProvisionedCapacity: (params: ParamsFrom<'purchaseProvisionedCapacity', Record<string, never>>) => Promise<ReturnTypeFrom<'purchaseProvisionedCapacity'>>;
    removeTagsFromVault: (params: ParamsFrom<'removeTagsFromVault', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTagsFromVault'>>;
    setDataRetrievalPolicy: (params: ParamsFrom<'setDataRetrievalPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'setDataRetrievalPolicy'>>;
    setVaultAccessPolicy: (params: ParamsFrom<'setVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'setVaultAccessPolicy'>>;
    setVaultNotifications: (params: ParamsFrom<'setVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'setVaultNotifications'>>;
    uploadArchive: (params: ParamsFrom<'uploadArchive', Record<string, never>>) => Promise<ReturnTypeFrom<'uploadArchive'>>;
    uploadMultipartPart: (params: ParamsFrom<'uploadMultipartPart', Record<string, never>>) => Promise<ReturnTypeFrom<'uploadMultipartPart'>>;
    static fromClient(client: AWSGlacier): Glacier;
    static client(options?: AWSGlacier.Types.ClientConfiguration): Glacier;
}
export {};
