import type { KeyManagementServiceClient } from '@google-cloud/kms';
import { CryptoKey } from 'webcrypto-core';
import { GcpKmsConfig } from './GcpKmsConfig';
import { KmsRsaPssProvider } from '../KmsRsaPssProvider';
export declare class GcpKmsRsaPssProvider extends KmsRsaPssProvider {
    client: KeyManagementServiceClient;
    config: GcpKmsConfig;
    constructor(client: KeyManagementServiceClient, config: GcpKmsConfig);
    onGenerateKey(algorithm: RsaHashedKeyGenParams): Promise<CryptoKeyPair>;
    onImportKey(format: KeyFormat, keyData: ArrayBuffer, algorithm: RsaHashedImportParams): Promise<CryptoKey>;
    onExportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer>;
    onSign(algorithm: RsaPssParams, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
    onVerify(): Promise<boolean>;
    destroyKey(key: CryptoKey): Promise<void>;
    close(): Promise<void>;
    private getGCPProjectId;
    private createCryptoKey;
    private getPublicKeyFromPrivate;
    private kmsSign;
}
export declare function retrieveKMSPublicKey(kmsKeyVersionName: string, kmsClient: KeyManagementServiceClient): Promise<ArrayBuffer>;
