import type { Deferrable } from '@ethersproject/properties';
import { ethers } from 'ethers';
type GoogleKmsKey = {
    project: string;
    location: string;
    keyRing: string;
    cryptoKey: string;
    cryptoKeyVersion: string;
};
export declare class GoogleKmsSigner extends ethers.AbstractSigner {
    private readonly path;
    private address?;
    private pubkey?;
    private readonly client;
    private readonly identifier;
    constructor(path: GoogleKmsKey, client?: import("@google-cloud/kms/build/src/v1").KeyManagementServiceClient, provider?: ethers.Provider);
    getAddress(): Promise<string>;
    signMessage(message: string | ethers.BytesLike): Promise<string>;
    signTransaction(tx: Deferrable<ethers.TransactionRequest>): Promise<string>;
    signTypedData(domain: ethers.TypedDataDomain, types: Record<string, Array<ethers.TypedDataField>>, value: Record<string, unknown>): Promise<string>;
    connect(provider: ethers.Provider): ethers.Signer;
    private getPubkey;
    private signDigest;
}
export {};
//# sourceMappingURL=signer.d.ts.map