export declare enum Protocol { BITCOIN = "bitcoin", ETHEREUM = "ethereum" } export declare enum NetworkName { MAINNET = "mainnet", TESTNET = "testnet" } export declare enum DataType { STRING = "STRING", FILE = "FILE", HASH = "HASH" } export declare enum SealStatus { CONFIRMED = "confirmed", FAILED = "failed", PENDING = "pending" } export interface ISeal { id: string; dataHash: string; anchors: IAnchors; signatures?: ISignatures; signinvites?: ISignInvites; sealed: string; } export interface IAnchor { transactionId: string; nodeUrl: string; explorer: string; merkleRoot: string; proof: IProof[]; exists?: boolean; } export interface IInviteAnchor extends IAnchor { invites?: { [inviteId: string]: ISignInvite; }; transactionStatus: SealStatus; } export interface ISignInvite { proof: IProof[]; hash: string; } export interface IAnchors { ethereum?: { [networkId: string]: Type; }; bitcoin?: { mainnet?: Type; testnet?: Type; }; } export interface IProof { right?: string; left?: string; } export interface ISignatures { ethereum?: { [signerAddress: string]: { transactionId: string; nodeUrl: string; explorer: string; signature: string; signed: string; transactionStatus: SealStatus; }; }; } export interface IConfig { bitcoin?: { url?: string; apiKey?: string; }; ethereum?: { apiKey?: string; }; } export interface ISignInvites { anchors: IAnchors; } export declare class CertiMintValidation { protected config: IConfig; constructor(config?: IConfig); updateSeal(seal: ISeal): Promise; validateSealAndData(seal: ISeal, data: string, dataType: DataType): Promise; validateSeal(seal: ISeal): Promise; private hashForData; private validateAnchors; private validateEthereumAnchor; private validateBitcoinAnchor; private validateSignatures; private validateSignInvites; private resolveSignatures; private resolveSignInvites; private addHexPrefix; private isHexPrefixed; private streamToHashForNode; private streamToHashForBrowser; private buildTxUrl; private addInfuraApiKey; }