import { KeyObject } from 'node:crypto';
export declare class CallingPrivateKey {
    #private;
    constructor(privateKey: KeyObject);
    static getPrivateKeyObject(privateKey: CallingPrivateKey): KeyObject;
    static fromBytes(bytes: Uint8Array<ArrayBuffer>): CallingPrivateKey;
    toBytes(): Uint8Array<ArrayBuffer>;
    agree(publicKey: CallingPublicKey): Uint8Array<ArrayBuffer>;
}
export declare class CallingPublicKey {
    #private;
    constructor(publicKey: KeyObject);
    static getPublicKeyObject(publicKey: CallingPublicKey): KeyObject;
    static fromBytes(bytes: Uint8Array<ArrayBuffer>): CallingPublicKey;
    getKeyObject(): KeyObject;
    toBytes(): Uint8Array<ArrayBuffer>;
}
export declare class CallingKeyPair {
    #private;
    private constructor();
    get privateKey(): CallingPrivateKey;
    get publicKey(): CallingPublicKey;
    static generate(): Promise<CallingKeyPair>;
}
