import type { ILinkedDataProof } from '../../../common/interfaces';
import type { VerificationResult } from '../../../crypto';
export interface DataIntegrityProof extends ILinkedDataProof {
    type: 'DataIntegrityProof';
    cryptosuite: string;
    created?: string;
    verificationMethod: string;
    proofPurpose: string;
    proofValue: string;
    id?: string;
    previousProof?: string | string[];
}
export type ProofType = DataIntegrityProof;
export interface ProofOptions {
    verificationMethod: string;
    proofPurpose: string;
    privateKey?: Uint8Array;
    type: 'DataIntegrityProof';
    created?: string;
    cryptosuite: string;
    documentLoader?: (url: string) => Promise<any>;
    previousProof?: string | string[];
    challenge?: string;
    domain?: string;
    mandatoryPointers?: string[];
    featureOption?: string;
    commitment_with_proof?: Uint8Array;
}
export declare class DataIntegrityProofManager {
    static createSingleProof(document: any, options: ProofOptions): Promise<DataIntegrityProof>;
    static verifySingleProof(document: any, proof: DataIntegrityProof, options: any): Promise<VerificationResult>;
    static createProof(document: any, options: ProofOptions | ProofOptions[]): Promise<DataIntegrityProof | DataIntegrityProof[]>;
    static verifyProof(document: any, proof: DataIntegrityProof | DataIntegrityProof[], options: any): Promise<VerificationResult>;
    static createProofSet(document: any, proofs: ProofOptions[]): Promise<DataIntegrityProof[]>;
    static createProofChain(document: any, proofs: ProofOptions[]): Promise<DataIntegrityProof[]>;
    static verifyProofSet(document: any, proofs: DataIntegrityProof[], options: any): Promise<VerificationResult>;
    static verifyProofChain(document: any, proofs: DataIntegrityProof[], options: any): Promise<VerificationResult>;
}
//# sourceMappingURL=data-integrity.d.ts.map