import { Request, CloudHSM as AWSCloudHSM } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCloudHSM> = AWSCloudHSM[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCloudHSM, Extras> = AWSCloudHSM[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CloudHSM {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "cloudhsm";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly [];
    addTagsToResource: (params: ParamsFrom<'addTagsToResource', Record<string, never>>) => Promise<ReturnTypeFrom<'addTagsToResource'>>;
    createHapg: (params: ParamsFrom<'createHapg', Record<string, never>>) => Promise<ReturnTypeFrom<'createHapg'>>;
    createHsm: (params: ParamsFrom<'createHsm', Record<string, never>>) => Promise<ReturnTypeFrom<'createHsm'>>;
    createLunaClient: (params: ParamsFrom<'createLunaClient', Record<string, never>>) => Promise<ReturnTypeFrom<'createLunaClient'>>;
    deleteHapg: (params: ParamsFrom<'deleteHapg', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteHapg'>>;
    deleteHsm: (params: ParamsFrom<'deleteHsm', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteHsm'>>;
    deleteLunaClient: (params: ParamsFrom<'deleteLunaClient', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLunaClient'>>;
    describeHapg: (params: ParamsFrom<'describeHapg', Record<string, never>>) => Promise<ReturnTypeFrom<'describeHapg'>>;
    describeHsm: (params: ParamsFrom<'describeHsm', Record<string, never>>) => Promise<ReturnTypeFrom<'describeHsm'>>;
    describeLunaClient: (params: ParamsFrom<'describeLunaClient', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLunaClient'>>;
    getConfig: (params: ParamsFrom<'getConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getConfig'>>;
    listAvailableZones: (params: ParamsFrom<'listAvailableZones', Record<string, never>>) => Promise<ReturnTypeFrom<'listAvailableZones'>>;
    listHapgs: (params: ParamsFrom<'listHapgs', Record<string, never>>) => Promise<ReturnTypeFrom<'listHapgs'>>;
    listHsms: (params: ParamsFrom<'listHsms', Record<string, never>>) => Promise<ReturnTypeFrom<'listHsms'>>;
    listLunaClients: (params: ParamsFrom<'listLunaClients', Record<string, never>>) => Promise<ReturnTypeFrom<'listLunaClients'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    modifyHapg: (params: ParamsFrom<'modifyHapg', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyHapg'>>;
    modifyHsm: (params: ParamsFrom<'modifyHsm', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyHsm'>>;
    modifyLunaClient: (params: ParamsFrom<'modifyLunaClient', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyLunaClient'>>;
    removeTagsFromResource: (params: ParamsFrom<'removeTagsFromResource', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTagsFromResource'>>;
    static fromClient(client: AWSCloudHSM): CloudHSM;
    static client(options?: AWSCloudHSM.Types.ClientConfiguration): CloudHSM;
}
export {};
