import type { Snapshot, SnapshotContentIdOptions } from './Snapshot.ts'; export declare class GeneratedSnapshot implements Snapshot { #private; readonly id: string; constructor(base: Snapshot, generation: number); get baseSnapshotId(): string; readDirectory(path?: string): Promise; readFile(path: string): Promise; readFileBinary(path: string): Promise>; readFileStream(path: string): import("./FileSystem.ts").FileReadableStream; fileExists(path: string): Promise; getFileLastModifiedMs(path: string): Promise; getFileByteLength(path: string): Promise; isFilePathGitIgnored(path: string): boolean; isFilePathExcludedFromTsConfigAsync(path: string, isDirectory?: boolean): Promise; getRelativePathToWorkspace(path: string): string; contentId(path: string, options?: SnapshotContentIdOptions): Promise; getWorkspaceChangeToken(rootPath: string): Promise; getWorkspaceChangedPathsSinceToken(rootPath: string, previousToken: string): Promise | null>; getRecentlyInvalidatedPaths(): ReadonlySet | undefined; invalidatePath(path: string): void; invalidatePaths(paths: Iterable): void; invalidateAll(): void; onInvalidate(listener: (path: string) => void): () => void; } interface GetOrCreateSessionOptions { snapshot?: Snapshot; cacheId: string; createBaseSnapshot: () => Snapshot; createSession: (snapshot: Snapshot, options: { resetBarrier?: Promise; }) => SessionType; } interface ResetSessionsOptions { snapshotId?: string; resetSession: (session: SessionType) => void | Promise; onMissingSnapshotFamily?: (snapshotId: string) => void; } export declare class SessionRegistry { #private; getOrCreate(fileSystem: object, options: GetOrCreateSessionOptions): SessionType; reset(fileSystem: object, options: ResetSessionsOptions): void; } export declare function getCacheIdentity(cache?: object): string; export {};