import type { DirectoryEntryDir, DirectoryEntryRegFile, DirectoryEntrySymlink } from "@superblocksteam/shared";
export interface SnapshotDirEntryRegFile extends DirectoryEntryRegFile {
    contents: Buffer;
}
export interface SnapshotDirEntryDir extends DirectoryEntryDir {
    contents: SnapshotDirEntry[];
}
/** This is like `DirectoryEntry` but includes a complete snapshot of the entire directory tree, including all subdirectories and files. */
export type SnapshotDirEntry = SnapshotDirEntryRegFile | SnapshotDirEntryDir | DirectoryEntrySymlink;
export interface DirectorySnapshot {
    hash: string;
    contents: SnapshotDirEntry[];
}
/** This is like `DirectoryEntry` but includes the recursive contents of all subdirectories in the tree. */
export interface DirectoryEntryDirWithContents extends DirectoryEntryDir {
    contents: DirectoryEntryTree[];
}
export type DirectoryEntryTree = DirectoryEntryRegFile | DirectoryEntryDirWithContents | DirectoryEntrySymlink;
/** The state of a directory, i.e. its hash and recursively the hashes of all the hashes of all the files and directories within it. */
export interface DirectoryState {
    hash: string;
    contents: DirectoryEntryTree[];
}
//# sourceMappingURL=types.d.ts.map