import { Request, StorageGateway as AWSStorageGateway } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSStorageGateway> = AWSStorageGateway[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSStorageGateway, Extras> = AWSStorageGateway[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class StorageGateway {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "storagegateway";
    readonly global: false;
    readonly category: "Storage";
    readonly topLevelCalls: readonly ["describeTapeArchives", "listFileShares", "listFileSystemAssociations", "listGateways", "listTapePools", "listTapes", "listVolumes"];
    activateGateway: (params: ParamsFrom<'activateGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'activateGateway'>>;
    addCache: (params: ParamsFrom<'addCache', Record<string, never>>) => Promise<ReturnTypeFrom<'addCache'>>;
    addTagsToResource: (params: ParamsFrom<'addTagsToResource', Record<string, never>>) => Promise<ReturnTypeFrom<'addTagsToResource'>>;
    addUploadBuffer: (params: ParamsFrom<'addUploadBuffer', Record<string, never>>) => Promise<ReturnTypeFrom<'addUploadBuffer'>>;
    addWorkingStorage: (params: ParamsFrom<'addWorkingStorage', Record<string, never>>) => Promise<ReturnTypeFrom<'addWorkingStorage'>>;
    assignTapePool: (params: ParamsFrom<'assignTapePool', Record<string, never>>) => Promise<ReturnTypeFrom<'assignTapePool'>>;
    associateFileSystem: (params: ParamsFrom<'associateFileSystem', Record<string, never>>) => Promise<ReturnTypeFrom<'associateFileSystem'>>;
    attachVolume: (params: ParamsFrom<'attachVolume', Record<string, never>>) => Promise<ReturnTypeFrom<'attachVolume'>>;
    cancelArchival: (params: ParamsFrom<'cancelArchival', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelArchival'>>;
    cancelRetrieval: (params: ParamsFrom<'cancelRetrieval', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelRetrieval'>>;
    createCachediSCSIVolume: (params: ParamsFrom<'createCachediSCSIVolume', Record<string, never>>) => Promise<ReturnTypeFrom<'createCachediSCSIVolume'>>;
    createNFSFileShare: (params: ParamsFrom<'createNFSFileShare', Record<string, never>>) => Promise<ReturnTypeFrom<'createNFSFileShare'>>;
    createSMBFileShare: (params: ParamsFrom<'createSMBFileShare', Record<string, never>>) => Promise<ReturnTypeFrom<'createSMBFileShare'>>;
    createSnapshot: (params: ParamsFrom<'createSnapshot', Record<string, never>>) => Promise<ReturnTypeFrom<'createSnapshot'>>;
    createSnapshotFromVolumeRecoveryPoint: (params: ParamsFrom<'createSnapshotFromVolumeRecoveryPoint', Record<string, never>>) => Promise<ReturnTypeFrom<'createSnapshotFromVolumeRecoveryPoint'>>;
    createStorediSCSIVolume: (params: ParamsFrom<'createStorediSCSIVolume', Record<string, never>>) => Promise<ReturnTypeFrom<'createStorediSCSIVolume'>>;
    createTapePool: (params: ParamsFrom<'createTapePool', Record<string, never>>) => Promise<ReturnTypeFrom<'createTapePool'>>;
    createTapeWithBarcode: (params: ParamsFrom<'createTapeWithBarcode', Record<string, never>>) => Promise<ReturnTypeFrom<'createTapeWithBarcode'>>;
    createTapes: (params: ParamsFrom<'createTapes', Record<string, never>>) => Promise<ReturnTypeFrom<'createTapes'>>;
    deleteAutomaticTapeCreationPolicy: (params: ParamsFrom<'deleteAutomaticTapeCreationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAutomaticTapeCreationPolicy'>>;
    deleteBandwidthRateLimit: (params: ParamsFrom<'deleteBandwidthRateLimit', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBandwidthRateLimit'>>;
    deleteChapCredentials: (params: ParamsFrom<'deleteChapCredentials', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteChapCredentials'>>;
    deleteFileShare: (params: ParamsFrom<'deleteFileShare', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFileShare'>>;
    deleteGateway: (params: ParamsFrom<'deleteGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteGateway'>>;
    deleteSnapshotSchedule: (params: ParamsFrom<'deleteSnapshotSchedule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSnapshotSchedule'>>;
    deleteTape: (params: ParamsFrom<'deleteTape', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTape'>>;
    deleteTapeArchive: (params: ParamsFrom<'deleteTapeArchive', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTapeArchive'>>;
    deleteTapePool: (params: ParamsFrom<'deleteTapePool', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTapePool'>>;
    deleteVolume: (params: ParamsFrom<'deleteVolume', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVolume'>>;
    describeAvailabilityMonitorTest: (params: ParamsFrom<'describeAvailabilityMonitorTest', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAvailabilityMonitorTest'>>;
    describeBandwidthRateLimit: (params: ParamsFrom<'describeBandwidthRateLimit', Record<string, never>>) => Promise<ReturnTypeFrom<'describeBandwidthRateLimit'>>;
    describeBandwidthRateLimitSchedule: (params: ParamsFrom<'describeBandwidthRateLimitSchedule', Record<string, never>>) => Promise<ReturnTypeFrom<'describeBandwidthRateLimitSchedule'>>;
    describeCache: (params: ParamsFrom<'describeCache', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCache'>>;
    describeCachediSCSIVolumes: (params: ParamsFrom<'describeCachediSCSIVolumes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCachediSCSIVolumes'>>;
    describeChapCredentials: (params: ParamsFrom<'describeChapCredentials', Record<string, never>>) => Promise<ReturnTypeFrom<'describeChapCredentials'>>;
    describeFileSystemAssociations: (params: ParamsFrom<'describeFileSystemAssociations', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFileSystemAssociations'>>;
    describeGatewayInformation: (params: ParamsFrom<'describeGatewayInformation', Record<string, never>>) => Promise<ReturnTypeFrom<'describeGatewayInformation'>>;
    describeMaintenanceStartTime: (params: ParamsFrom<'describeMaintenanceStartTime', Record<string, never>>) => Promise<ReturnTypeFrom<'describeMaintenanceStartTime'>>;
    describeNFSFileShares: (params: ParamsFrom<'describeNFSFileShares', Record<string, never>>) => Promise<ReturnTypeFrom<'describeNFSFileShares'>>;
    describeSMBFileShares: (params: ParamsFrom<'describeSMBFileShares', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSMBFileShares'>>;
    describeSMBSettings: (params: ParamsFrom<'describeSMBSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSMBSettings'>>;
    describeSnapshotSchedule: (params: ParamsFrom<'describeSnapshotSchedule', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSnapshotSchedule'>>;
    describeStorediSCSIVolumes: (params: ParamsFrom<'describeStorediSCSIVolumes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStorediSCSIVolumes'>>;
    describeTapeArchives(params: {
        [K in keyof ParamsFrom<'describeTapeArchives', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeTapeArchives', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeTapeArchives'>]-?: ReturnTypeFrom<'describeTapeArchives'>[K];
        }['TapeArchives'];
    }>;
    describeTapeRecoveryPoints(params: {
        [K in keyof ParamsFrom<'describeTapeRecoveryPoints', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeTapeRecoveryPoints', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeTapeRecoveryPoints'>]-?: ReturnTypeFrom<'describeTapeRecoveryPoints'>[K];
        }['TapeRecoveryPointInfos'];
    }>;
    describeTapes(params: {
        [K in keyof ParamsFrom<'describeTapes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeTapes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeTapes'>]-?: ReturnTypeFrom<'describeTapes'>[K];
        }['Tapes'];
    }>;
    describeUploadBuffer: (params: ParamsFrom<'describeUploadBuffer', Record<string, never>>) => Promise<ReturnTypeFrom<'describeUploadBuffer'>>;
    describeVTLDevices(params: {
        [K in keyof ParamsFrom<'describeVTLDevices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeVTLDevices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeVTLDevices'>]-?: ReturnTypeFrom<'describeVTLDevices'>[K];
        }['VTLDevices'];
    }>;
    describeWorkingStorage: (params: ParamsFrom<'describeWorkingStorage', Record<string, never>>) => Promise<ReturnTypeFrom<'describeWorkingStorage'>>;
    detachVolume: (params: ParamsFrom<'detachVolume', Record<string, never>>) => Promise<ReturnTypeFrom<'detachVolume'>>;
    disableGateway: (params: ParamsFrom<'disableGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'disableGateway'>>;
    disassociateFileSystem: (params: ParamsFrom<'disassociateFileSystem', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateFileSystem'>>;
    joinDomain: (params: ParamsFrom<'joinDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'joinDomain'>>;
    listAutomaticTapeCreationPolicies: (params: ParamsFrom<'listAutomaticTapeCreationPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'listAutomaticTapeCreationPolicies'>>;
    listFileShares(params: {
        [K in keyof ParamsFrom<'listFileShares', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFileShares', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFileShares'>]-?: ReturnTypeFrom<'listFileShares'>[K];
        }['FileShareInfoList'];
    }>;
    listFileSystemAssociations(params: {
        [K in keyof ParamsFrom<'listFileSystemAssociations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFileSystemAssociations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFileSystemAssociations'>]-?: ReturnTypeFrom<'listFileSystemAssociations'>[K];
        }['FileSystemAssociationSummaryList'];
    }>;
    listGateways(params: {
        [K in keyof ParamsFrom<'listGateways', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listGateways', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listGateways'>]-?: ReturnTypeFrom<'listGateways'>[K];
        }['Gateways'];
    }>;
    listLocalDisks: (params: ParamsFrom<'listLocalDisks', Record<string, never>>) => Promise<ReturnTypeFrom<'listLocalDisks'>>;
    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'];
    }>;
    listTapePools(params: {
        [K in keyof ParamsFrom<'listTapePools', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTapePools', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTapePools'>]-?: ReturnTypeFrom<'listTapePools'>[K];
        }['PoolInfos'];
    }>;
    listTapes(params: {
        [K in keyof ParamsFrom<'listTapes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTapes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTapes'>]-?: ReturnTypeFrom<'listTapes'>[K];
        }['TapeInfos'];
    }>;
    listVolumeInitiators: (params: ParamsFrom<'listVolumeInitiators', Record<string, never>>) => Promise<ReturnTypeFrom<'listVolumeInitiators'>>;
    listVolumeRecoveryPoints: (params: ParamsFrom<'listVolumeRecoveryPoints', Record<string, never>>) => Promise<ReturnTypeFrom<'listVolumeRecoveryPoints'>>;
    listVolumes(params: {
        [K in keyof ParamsFrom<'listVolumes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVolumes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVolumes'>]-?: ReturnTypeFrom<'listVolumes'>[K];
        }['VolumeInfos'];
    }>;
    notifyWhenUploaded: (params: ParamsFrom<'notifyWhenUploaded', Record<string, never>>) => Promise<ReturnTypeFrom<'notifyWhenUploaded'>>;
    refreshCache: (params: ParamsFrom<'refreshCache', Record<string, never>>) => Promise<ReturnTypeFrom<'refreshCache'>>;
    removeTagsFromResource: (params: ParamsFrom<'removeTagsFromResource', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTagsFromResource'>>;
    resetCache: (params: ParamsFrom<'resetCache', Record<string, never>>) => Promise<ReturnTypeFrom<'resetCache'>>;
    retrieveTapeArchive: (params: ParamsFrom<'retrieveTapeArchive', Record<string, never>>) => Promise<ReturnTypeFrom<'retrieveTapeArchive'>>;
    retrieveTapeRecoveryPoint: (params: ParamsFrom<'retrieveTapeRecoveryPoint', Record<string, never>>) => Promise<ReturnTypeFrom<'retrieveTapeRecoveryPoint'>>;
    setLocalConsolePassword: (params: ParamsFrom<'setLocalConsolePassword', Record<string, never>>) => Promise<ReturnTypeFrom<'setLocalConsolePassword'>>;
    setSMBGuestPassword: (params: ParamsFrom<'setSMBGuestPassword', Record<string, never>>) => Promise<ReturnTypeFrom<'setSMBGuestPassword'>>;
    shutdownGateway: (params: ParamsFrom<'shutdownGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'shutdownGateway'>>;
    startAvailabilityMonitorTest: (params: ParamsFrom<'startAvailabilityMonitorTest', Record<string, never>>) => Promise<ReturnTypeFrom<'startAvailabilityMonitorTest'>>;
    startGateway: (params: ParamsFrom<'startGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'startGateway'>>;
    updateAutomaticTapeCreationPolicy: (params: ParamsFrom<'updateAutomaticTapeCreationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateAutomaticTapeCreationPolicy'>>;
    updateBandwidthRateLimit: (params: ParamsFrom<'updateBandwidthRateLimit', Record<string, never>>) => Promise<ReturnTypeFrom<'updateBandwidthRateLimit'>>;
    updateBandwidthRateLimitSchedule: (params: ParamsFrom<'updateBandwidthRateLimitSchedule', Record<string, never>>) => Promise<ReturnTypeFrom<'updateBandwidthRateLimitSchedule'>>;
    updateChapCredentials: (params: ParamsFrom<'updateChapCredentials', Record<string, never>>) => Promise<ReturnTypeFrom<'updateChapCredentials'>>;
    updateFileSystemAssociation: (params: ParamsFrom<'updateFileSystemAssociation', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFileSystemAssociation'>>;
    updateGatewayInformation: (params: ParamsFrom<'updateGatewayInformation', Record<string, never>>) => Promise<ReturnTypeFrom<'updateGatewayInformation'>>;
    updateGatewaySoftwareNow: (params: ParamsFrom<'updateGatewaySoftwareNow', Record<string, never>>) => Promise<ReturnTypeFrom<'updateGatewaySoftwareNow'>>;
    updateMaintenanceStartTime: (params: ParamsFrom<'updateMaintenanceStartTime', Record<string, never>>) => Promise<ReturnTypeFrom<'updateMaintenanceStartTime'>>;
    updateNFSFileShare: (params: ParamsFrom<'updateNFSFileShare', Record<string, never>>) => Promise<ReturnTypeFrom<'updateNFSFileShare'>>;
    updateSMBFileShare: (params: ParamsFrom<'updateSMBFileShare', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSMBFileShare'>>;
    updateSMBFileShareVisibility: (params: ParamsFrom<'updateSMBFileShareVisibility', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSMBFileShareVisibility'>>;
    updateSMBLocalGroups: (params: ParamsFrom<'updateSMBLocalGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSMBLocalGroups'>>;
    updateSMBSecurityStrategy: (params: ParamsFrom<'updateSMBSecurityStrategy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSMBSecurityStrategy'>>;
    updateSnapshotSchedule: (params: ParamsFrom<'updateSnapshotSchedule', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSnapshotSchedule'>>;
    updateVTLDeviceType: (params: ParamsFrom<'updateVTLDeviceType', Record<string, never>>) => Promise<ReturnTypeFrom<'updateVTLDeviceType'>>;
    static fromClient(client: AWSStorageGateway): StorageGateway;
    static client(options?: AWSStorageGateway.Types.ClientConfiguration): StorageGateway;
}
export {};
