import { Request, KMS as AWSKMS } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSKMS> = AWSKMS[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSKMS, Extras> = AWSKMS[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class KMS {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "kms";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly ["describeCustomKeyStores", "listAliases", "listKeys"];
    cancelKeyDeletion: (params: ParamsFrom<'cancelKeyDeletion', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelKeyDeletion'>>;
    connectCustomKeyStore: (params: ParamsFrom<'connectCustomKeyStore', Record<string, never>>) => Promise<ReturnTypeFrom<'connectCustomKeyStore'>>;
    createAlias: (params: ParamsFrom<'createAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'createAlias'>>;
    createCustomKeyStore: (params: ParamsFrom<'createCustomKeyStore', Record<string, never>>) => Promise<ReturnTypeFrom<'createCustomKeyStore'>>;
    createGrant: (params: ParamsFrom<'createGrant', Record<string, never>>) => Promise<ReturnTypeFrom<'createGrant'>>;
    createKey: (params: ParamsFrom<'createKey', Record<string, never>>) => Promise<ReturnTypeFrom<'createKey'>>;
    decrypt: (params: ParamsFrom<'decrypt', Record<string, never>>) => Promise<ReturnTypeFrom<'decrypt'>>;
    deleteAlias: (params: ParamsFrom<'deleteAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAlias'>>;
    deleteCustomKeyStore: (params: ParamsFrom<'deleteCustomKeyStore', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCustomKeyStore'>>;
    deleteImportedKeyMaterial: (params: ParamsFrom<'deleteImportedKeyMaterial', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteImportedKeyMaterial'>>;
    describeCustomKeyStores(params: {
        [K in keyof ParamsFrom<'describeCustomKeyStores', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCustomKeyStores', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCustomKeyStores'>]-?: ReturnTypeFrom<'describeCustomKeyStores'>[K];
        }['CustomKeyStores'];
    }>;
    describeKey: (params: ParamsFrom<'describeKey', Record<string, never>>) => Promise<ReturnTypeFrom<'describeKey'>>;
    disableKey: (params: ParamsFrom<'disableKey', Record<string, never>>) => Promise<ReturnTypeFrom<'disableKey'>>;
    disableKeyRotation: (params: ParamsFrom<'disableKeyRotation', Record<string, never>>) => Promise<ReturnTypeFrom<'disableKeyRotation'>>;
    disconnectCustomKeyStore: (params: ParamsFrom<'disconnectCustomKeyStore', Record<string, never>>) => Promise<ReturnTypeFrom<'disconnectCustomKeyStore'>>;
    enableKey: (params: ParamsFrom<'enableKey', Record<string, never>>) => Promise<ReturnTypeFrom<'enableKey'>>;
    enableKeyRotation: (params: ParamsFrom<'enableKeyRotation', Record<string, never>>) => Promise<ReturnTypeFrom<'enableKeyRotation'>>;
    encrypt: (params: ParamsFrom<'encrypt', Record<string, never>>) => Promise<ReturnTypeFrom<'encrypt'>>;
    generateDataKey: (params: ParamsFrom<'generateDataKey', Record<string, never>>) => Promise<ReturnTypeFrom<'generateDataKey'>>;
    generateDataKeyPair: (params: ParamsFrom<'generateDataKeyPair', Record<string, never>>) => Promise<ReturnTypeFrom<'generateDataKeyPair'>>;
    generateDataKeyPairWithoutPlaintext: (params: ParamsFrom<'generateDataKeyPairWithoutPlaintext', Record<string, never>>) => Promise<ReturnTypeFrom<'generateDataKeyPairWithoutPlaintext'>>;
    generateDataKeyWithoutPlaintext: (params: ParamsFrom<'generateDataKeyWithoutPlaintext', Record<string, never>>) => Promise<ReturnTypeFrom<'generateDataKeyWithoutPlaintext'>>;
    generateMac: (params: ParamsFrom<'generateMac', Record<string, never>>) => Promise<ReturnTypeFrom<'generateMac'>>;
    generateRandom: (params: ParamsFrom<'generateRandom', Record<string, never>>) => Promise<ReturnTypeFrom<'generateRandom'>>;
    getKeyPolicy: (params: ParamsFrom<'getKeyPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getKeyPolicy'>>;
    getKeyRotationStatus: (params: ParamsFrom<'getKeyRotationStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getKeyRotationStatus'>>;
    getParametersForImport: (params: ParamsFrom<'getParametersForImport', Record<string, never>>) => Promise<ReturnTypeFrom<'getParametersForImport'>>;
    getPublicKey: (params: ParamsFrom<'getPublicKey', Record<string, never>>) => Promise<ReturnTypeFrom<'getPublicKey'>>;
    importKeyMaterial: (params: ParamsFrom<'importKeyMaterial', Record<string, never>>) => Promise<ReturnTypeFrom<'importKeyMaterial'>>;
    listAliases(params: {
        [K in keyof ParamsFrom<'listAliases', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAliases', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAliases'>]-?: ReturnTypeFrom<'listAliases'>[K];
        }['Aliases'];
    }>;
    listGrants(params: {
        [K in keyof ParamsFrom<'listGrants', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listGrants', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listGrants'>]-?: ReturnTypeFrom<'listGrants'>[K];
        }['Grants'];
    }>;
    listKeyPolicies(params: {
        [K in keyof ParamsFrom<'listKeyPolicies', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listKeyPolicies', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listKeyPolicies'>]-?: ReturnTypeFrom<'listKeyPolicies'>[K];
        }['PolicyNames'];
    }>;
    listKeys(params: {
        [K in keyof ParamsFrom<'listKeys', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listKeys', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listKeys'>]-?: ReturnTypeFrom<'listKeys'>[K];
        }['Keys'];
    }>;
    listResourceTags(params: {
        [K in keyof ParamsFrom<'listResourceTags', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listResourceTags', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listResourceTags'>]-?: ReturnTypeFrom<'listResourceTags'>[K];
        }['Tags'];
    }>;
    listRetirableGrants(params: {
        [K in keyof ParamsFrom<'listRetirableGrants', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRetirableGrants', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRetirableGrants'>]-?: ReturnTypeFrom<'listRetirableGrants'>[K];
        }['Grants'];
    }>;
    putKeyPolicy: (params: ParamsFrom<'putKeyPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putKeyPolicy'>>;
    reEncrypt: (params: ParamsFrom<'reEncrypt', Record<string, never>>) => Promise<ReturnTypeFrom<'reEncrypt'>>;
    replicateKey: (params: ParamsFrom<'replicateKey', Record<string, never>>) => Promise<ReturnTypeFrom<'replicateKey'>>;
    retireGrant: (params: ParamsFrom<'retireGrant', Record<string, never>>) => Promise<ReturnTypeFrom<'retireGrant'>>;
    revokeGrant: (params: ParamsFrom<'revokeGrant', Record<string, never>>) => Promise<ReturnTypeFrom<'revokeGrant'>>;
    scheduleKeyDeletion: (params: ParamsFrom<'scheduleKeyDeletion', Record<string, never>>) => Promise<ReturnTypeFrom<'scheduleKeyDeletion'>>;
    sign: (params: ParamsFrom<'sign', Record<string, never>>) => Promise<ReturnTypeFrom<'sign'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateAlias: (params: ParamsFrom<'updateAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'updateAlias'>>;
    updateCustomKeyStore: (params: ParamsFrom<'updateCustomKeyStore', Record<string, never>>) => Promise<ReturnTypeFrom<'updateCustomKeyStore'>>;
    updateKeyDescription: (params: ParamsFrom<'updateKeyDescription', Record<string, never>>) => Promise<ReturnTypeFrom<'updateKeyDescription'>>;
    updatePrimaryRegion: (params: ParamsFrom<'updatePrimaryRegion', Record<string, never>>) => Promise<ReturnTypeFrom<'updatePrimaryRegion'>>;
    verify: (params: ParamsFrom<'verify', Record<string, never>>) => Promise<ReturnTypeFrom<'verify'>>;
    verifyMac: (params: ParamsFrom<'verifyMac', Record<string, never>>) => Promise<ReturnTypeFrom<'verifyMac'>>;
    static fromClient(client: AWSKMS): KMS;
    static client(options?: AWSKMS.Types.ClientConfiguration): KMS;
}
export {};
