import type { Receipt } from "@kya-os/contracts/registry";
/**
 * Merkle log verifier for receipt verification
 */
export interface MerkleProofNode {
    hash: string;
    isLeft: boolean;
}
export interface LogRoot {
    root: string;
    size: number;
    timestamp: number;
}
export interface VerificationResult {
    valid: boolean;
    error?: string;
    logRoot?: LogRoot;
}
/**
 * Merkle log verifier implementation
 */
export declare class MerkleLogVerifier {
    /**
     * Verify a receipt's inclusion proof against a log root
     */
    static verifyInclusion(receipt: Receipt, logRoot: LogRoot): Promise<VerificationResult>;
    /**
     * Compute leaf hash from receipt content
     */
    private static computeLeafHash;
    /**
     * Compute root hash from inclusion proof
     */
    private static computeRootFromProof;
    /**
     * Hash a pair of nodes
     */
    private static hashPair;
    /**
     * Verify consistency between two log roots
     */
    static verifyConsistency(oldRoot: LogRoot, newRoot: LogRoot, consistencyProof: string[]): Promise<VerificationResult>;
}
/**
 * Receipt verifier with policy controls
 */
export declare class ReceiptVerifier {
    private options;
    constructor(options?: ReceiptVerifierOptions);
    /**
     * Verify a receipt against KTA log
     */
    verify(receipt: Receipt): Promise<VerificationResult>;
    /**
     * Batch verify multiple receipts
     */
    verifyBatch(receipts: Receipt[]): Promise<VerificationResult[]>;
    /**
     * Fetch current log root from KTA
     */
    private fetchLogRoot;
}
export interface ReceiptVerifierOptions {
    /**
     * Enable receipt verification
     */
    enabled?: boolean;
    /**
     * KTA base URL
     */
    ktaBaseUrl?: string;
    /**
     * Allow mock data for testing
     */
    allowMockData?: boolean;
    /**
     * Cache log root for this duration (seconds)
     */
    cacheLogRootTtl?: number;
}
/**
 * Create receipt verifier instance
 */
export declare function createReceiptVerifier(options?: ReceiptVerifierOptions): ReceiptVerifier;
