/** A single package entry in the lock file */ export interface LockPackageEntry { name: string; version: string; type: string; checksum: string; } /** The full lock file structure */ export interface OntologyLock { ontology: string; version: string; lockedAt: string; packages: LockPackageEntry[]; } /** Result of lock check */ export interface LockCheckResult { ok: boolean; lockPath: string; message?: string; locked?: OntologyLock; current?: { ontology: string; version: string; }; } export declare function createLockFile(projectRoot: string, selectedRoots: readonly LockableRoot[]): { lockPath: string; lock: OntologyLock; }; /** What the lock needs to know about a resolved package. */ export interface LockableRoot { dir: string; sysmlDir: string; packageName: string; packageVersion?: string; origin: string; importDepth: number; } /** * Check the lock against what the project resolves now. * * Returns ok when there is no lock file: a lock is recommended, not required. */ export declare function checkLockFile(projectRoot: string, selectedRoots: readonly LockableRoot[]): LockCheckResult; /** * Read an existing lock file. Returns undefined if not found. */ export declare function readLockFile(projectDir: string): OntologyLock | undefined; //# sourceMappingURL=lock.d.ts.map