/** * Copyright (c) 2025 Elara AI Pty Ltd * Licensed under BSL 1.1. See LICENSE for details. */ import type { StorageBackend, ObjectStore, RefStore, LockService, LogStore, RepoStore, DatasetRefStore } from '../interfaces.js'; /** * Local filesystem implementation of StorageBackend. * * This combines the local implementations of all storage interfaces, * providing a complete backend for local e3 repositories. * * The `repo` parameter passed to each method is the path to the e3 repository directory. * This allows a single LocalStorage instance to be used for multiple repositories. * * @example * ```typescript * import { LocalStorage } from '@elaraai/e3-core'; * * const storage = new LocalStorage(); * const repo = '/path/to/repo'; * * // Use the backend with storage-agnostic functions * const hash = await storage.objects.write(repo, data); * const packages = await storage.refs.packageList(repo); * ``` */ export declare class LocalStorage implements StorageBackend { /** Content-addressed object storage */ readonly objects: ObjectStore; /** Mutable reference storage */ readonly refs: RefStore; /** Distributed locking service */ readonly locks: LockService; /** Execution log storage */ readonly logs: LogStore; /** Repository lifecycle management */ readonly repos: RepoStore; /** Per-dataset reference storage (reactive dataflow) */ readonly datasets: DatasetRefStore; /** * Create a new LocalStorage instance. * * @param reposDir - Optional parent directory containing repositories. * Required for repo lifecycle operations (repos.*). * If not provided, repos.* methods will throw. */ constructor(reposDir?: string); /** * Validate that a repository exists and is properly structured. * @param repo - Path to the e3 repository directory * @throws {RepoNotFoundError} If repository doesn't exist or is invalid */ validateRepository(repo: string): Promise; } export { LocalStorage as LocalBackend }; //# sourceMappingURL=LocalBackend.d.ts.map