/** * Copyright (c) 2025 Elara AI Pty Ltd * Licensed under BSL 1.1. See LICENSE for details. */ import type { RepoStore, RepoStatus, RepoMetadata, BatchResult, GcObjectScanResult, GcRootScanResult } from '../interfaces.js'; import type { RefStore, DatasetRefStore } from '../interfaces.js'; /** * Local filesystem implementation of RepoStore. * * Manages repository lifecycle for local e3 repositories stored * as subdirectories within a parent directory. */ export declare class LocalRepoStore implements RepoStore { private readonly reposDir; private readonly refs; private readonly datasets?; /** * Create a new LocalRepoStore. * @param reposDir - Parent directory containing repositories * @param refs - RefStore for reading package/workspace/execution refs * @param datasets - DatasetRefStore for reading per-dataset refs (for GC scanning) */ constructor(reposDir: string, refs: RefStore, datasets?: DatasetRefStore | undefined); /** * Get the path to a repository directory. */ private getRepoPath; /** * Get the path to a repository's metadata file. */ private getMetadataPath; /** * Check if a directory is a valid e3 repository. */ private isValidRepository; list(): Promise; exists(repo: string): Promise; getMetadata(repo: string): Promise; create(repo: string): Promise; setStatus(repo: string, status: RepoStatus, expected?: RepoStatus | RepoStatus[]): Promise; remove(repo: string): Promise; deleteRefsBatch(repo: string, _cursor?: string): Promise; deleteObjectsBatch(repo: string, _cursor?: string): Promise; /** * Recursively delete all contents of a directory. * Returns count of files deleted. */ private deleteDirectoryContents; gcScanPackageRoots(repo: string, _cursor?: unknown): Promise; gcScanWorkspaceRoots(repo: string, _cursor?: unknown): Promise; gcScanExecutionRoots(repo: string, _cursor?: unknown): Promise; gcScanObjects(repo: string, _cursor?: unknown): Promise; gcDeleteObjects(repo: string, hashes: string[]): Promise; } //# sourceMappingURL=LocalRepoStore.d.ts.map