import type { Lockfile, OntologySnapshot } from "./types.js"; export { extractOntology, hashOntology, computeOntologyHash } from "./hasher.js"; export { diffOntology, formatDiffForConsole } from "./differ.js"; export type { Lockfile, OntologySnapshot, OntologyDiff, FunctionChange, FunctionShape, } from "./types.js"; /** * Get the lockfile path for a given config directory */ export declare function getLockfilePath(configDir: string): string; /** * Check if a lockfile exists */ export declare function lockfileExists(configDir: string): boolean; /** * Read the lockfile from disk * @returns The lockfile contents, or null if it doesn't exist */ export declare function readLockfile(configDir: string): Promise; /** * Write a lockfile to disk */ export declare function writeLockfile(configDir: string, ontology: OntologySnapshot, hash: string): Promise; /** * Check if the current ontology matches the lockfile * @returns { match: true } if hashes match, or { match: false, lockfile, currentHash } if not */ export declare function checkLockfile(configDir: string, currentHash: string): Promise<{ match: true; lockfile: Lockfile; } | { match: false; lockfile: Lockfile | null; currentHash: string; }>; /** * Result of lockfile validation */ export interface LockfileValidationResult { /** Status of the lockfile check */ status: "valid" | "missing" | "mismatch"; /** The diff if there are changes (only present for 'mismatch' status) */ diff?: import("./types.js").OntologyDiff; /** Human-readable message */ message: string; } /** * Validate the lockfile against the current ontology. * This is the main entry point for library use. * * @param configDir - Directory containing the ontology.config.ts * @param currentOntology - The current ontology snapshot * @param currentHash - The current ontology hash */ export declare function validateLockfile(configDir: string, currentOntology: OntologySnapshot, currentHash: string): Promise;