/**
 * Skill Lineage Manifest — verifier (sprint-586).
 *
 * Zero external dependency verifier — mirrors vauban-claim-verifier philosophy.
 *
 * Verification checks:
 *   1. replayRootMatches  — SHA-256(replaySnapshot) === manifest.trainingReplayRoot
 *   2. poseidonHashValid  — computeManifestHash(manifest) === manifest.poseidonHash
 *   3. tsaAnchorValid     — verifyTsaAnchor(manifest) (skipped if no tsaToken)
 *   4. starknetAnchorValid — merkle inclusion via AnchorWitness (if provided)
 *
 * A 1-byte tamper in replaySnapshot causes check 1 to fail.
 * All checks run independently; errors array collects all failures.
 *
 * @module skill-manifest/verifier
 */
import type { SkillManifest, AnchorWitness } from "./types.js";
export interface ManifestVerifyResult {
    /** Overall validity — true only if all applicable checks pass. */
    valid: boolean;
    /** SHA-256(replaySnapshot) === manifest.trainingReplayRoot */
    replayRootMatches: boolean;
    /** Poseidon commitment over manifest fields matches stored poseidonHash */
    poseidonHashValid: boolean;
    /** RFC 3161 TSA token structurally verifiable (false if no tsaToken) */
    tsaAnchorValid: boolean;
    /** Merkle inclusion proof valid (false if no witness or witness.type='none') */
    starknetAnchorValid: boolean;
    /** Grade propagated from the manifest (informational). */
    grade: SkillManifest["grade"];
    /** Human-readable error messages for every failed check. */
    errors: string[];
}
/**
 * Verify a SkillManifest against the original training replay snapshot.
 *
 * @param manifest         - Manifest to verify.
 * @param replaySnapshot   - Original training trace bytes (same input used in buildManifest).
 * @param starknetWitness  - Optional Merkle inclusion witness from the Starknet anchor.
 */
export declare function verifyManifest(manifest: SkillManifest, replaySnapshot: string | Buffer, starknetWitness?: AnchorWitness): ManifestVerifyResult;
//# sourceMappingURL=verifier.d.ts.map