import { IKey, ManagedKeyInfo, MinimalImportableKey, TKeyType } from '@veramo/core';
import { AbstractKeyManagementSystem } from '@veramo/key-manager';
import { KeyMetadata } from './index';
interface AbstractKeyManagementSystemOptions {
    applicationId: string;
    keyVaultUrl: string;
    keyVaultClientIdTenantId: string;
    keyVaultClientId: string;
    keyVaultClientSecret: string;
}
export declare class AzureKeyVaultKeyManagementSystem extends AbstractKeyManagementSystem {
    private client;
    private id;
    constructor(options: AbstractKeyManagementSystemOptions);
    createKey(args: {
        type: TKeyType;
        meta?: KeyMetadata;
    }): Promise<ManagedKeyInfo>;
    sign(args: {
        keyRef: Pick<IKey, 'kid'>;
        data: Uint8Array;
        [x: string]: any;
    }): Promise<string>;
    verify(args: {
        keyRef: Pick<IKey, 'kid'>;
        data: Uint8Array;
        signature: string;
        [x: string]: any;
    }): Promise<Boolean>;
    sharedSecret(args: {
        myKeyRef: Pick<IKey, 'kid'>;
        theirKey: Pick<IKey, 'publicKeyHex' | 'type'>;
    }): Promise<string>;
    importKey(args: Omit<MinimalImportableKey, 'kms'> & {
        privateKeyPEM?: string;
    }): Promise<ManagedKeyInfo>;
    deleteKey({ kid }: {
        kid: string;
    }): Promise<boolean>;
    listKeys(): Promise<ManagedKeyInfo[]>;
    private signatureAlgorithmToDigestAlgorithm;
    private signatureAlgorithmToCurve;
    private mapKeyUsage;
    private mapKeyTypeToSignatureAlgorithm;
    private mapKeyOperation;
    private mapKeyOperations;
}
export {};
//# sourceMappingURL=AzureKeyVaultKeyManagementSystem.d.ts.map