import { Multikey } from './Multikey';
import type { JsonWebKey2020 } from './JsonWebKey2020';
export declare class X25519KeyAgreementKey2019 {
    multikey: Multikey;
    constructor(id: string, controller: string, publicKeyBase58: string, privateKeyBase58?: string);
    get id(): string;
    get type(): string;
    get controller(): string;
    get publicKeyBase58(): string;
    get privateKeyBase58(): string | undefined;
    static generate(): Promise<X25519KeyAgreementKey2019>;
    static from(options: {
        id?: string;
        controller?: string;
        publicKeyBase58: string;
        privateKeyBase58?: string;
    }): X25519KeyAgreementKey2019;
    static fromJWK: (k: JsonWebKey2020) => Promise<X25519KeyAgreementKey2019>;
    deriveSecret(publicKey: X25519KeyAgreementKey2019): Promise<Uint8Array>;
    encrypt(data: Uint8Array, recipientPublicKey: X25519KeyAgreementKey2019): Promise<Uint8Array>;
    decrypt(data: Uint8Array, senderPublicKey: X25519KeyAgreementKey2019): Promise<Uint8Array>;
    export(options?: {
        privateKey?: boolean;
        type: 'JsonWebKey2020';
    }): Promise<JsonWebKey2020>;
    toJSON(): {
        id: string;
        type: string;
        controller: string;
        publicKeyBase58: string;
    };
}
//# sourceMappingURL=X25519KeyAgreementKey2019.d.ts.map