/** * Lock file generation and parsing for repertoire packages. * * The .takt-repertoire-lock.yaml records the installation provenance: * source: github:{owner}/{repo} * ref: tag or branch (defaults to "HEAD") * commit: full SHA from tarball directory name * imported_at: ISO 8601 timestamp */ export interface PackageLock { source: string; ref: string; commit: string; imported_at: string; } interface GenerateLockFileParams { source: string; ref: string | undefined; commitSha: string; importedAt: Date; } /** * Extract the commit SHA from a GitHub tarball directory name. * * GitHub tarball directories follow the format: {owner}-{repo}-{sha} * The SHA is always the last hyphen-separated segment. * * @param dirName - directory name without trailing slash */ export declare function extractCommitSha(dirName: string): string; /** * Generate a PackageLock object from installation parameters. * * @param params.source - e.g. "github:nrslib/takt-fullstack" * @param params.ref - tag, branch, or undefined (defaults to "HEAD") * @param params.commitSha - full commit SHA from tarball directory * @param params.importedAt - installation timestamp */ export declare function generateLockFile(params: GenerateLockFileParams): PackageLock; /** * Parse .takt-repertoire-lock.yaml content into a PackageLock object. * Returns empty-valued lock when yaml is empty (lock file missing). */ export declare function parseLockFile(yaml: string): PackageLock; export {}; //# sourceMappingURL=lock-file.d.ts.map