import type { DocumentLoader } from '../../common/interfaces';
import type { JsonWebKey2020 } from './JsonWebKey2020';
import type { Multikey } from './Multikey';
export declare class Ed25519Signature2018LinkedDataProof {
    type: string;
    proofPurpose: string;
    verificationMethod: string;
    created: string;
    jws?: string;
    challenge?: string;
    domain?: string;
    constructor(type: string, proofPurpose: string, verificationMethod: string, created: string, jws?: string, challenge?: string, domain?: string);
    toJSON(): any;
}
export declare class Ed25519VerificationKey2018 {
    private key2020;
    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<Ed25519VerificationKey2018>;
    static from(options: {
        id?: string;
        controller?: string;
        publicKeyBase58: string;
        privateKeyBase58?: string;
    }): Ed25519VerificationKey2018;
    static fromJWK: (k: JsonWebKey2020) => Promise<Ed25519VerificationKey2018>;
    sign(data: Uint8Array): Promise<Uint8Array>;
    verify(data: Uint8Array, signature: Uint8Array): Promise<boolean>;
    createProof(document: any, purpose: string, documentLoader: DocumentLoader, options?: {
        domain?: string;
        challenge?: string;
    }): Promise<{
        context: string[];
        proof: Ed25519Signature2018LinkedDataProof;
    }>;
    verifyProof(proof: Ed25519Signature2018LinkedDataProof, document: any, documentLoader: DocumentLoader): Promise<{
        verified: boolean;
        errors?: string[];
    }>;
    export(options?: {
        privateKey?: boolean;
        type: 'JsonWebKey2020';
    }): Promise<any>;
}
//# sourceMappingURL=Ed25519VerificationKey2018.d.ts.map