import { type Commit, type GitObject } from './object.ts'; export interface ObjectStore { get(id: string): Promise; put(objects: readonly GitObject[]): Promise; } export declare const need: (store: ObjectStore, id: string, type: GitObject['type']) => Promise; export declare const files: (store: ObjectStore, id: string) => Promise>; export declare const writeTree: (store: ObjectStore, paths: ReadonlyMap) => Promise; export declare const writeCommit: (store: ObjectStore, c: Commit) => Promise; export declare const reachable: (store: ObjectStore, from: string) => Promise; export declare class HeldObjects implements ObjectStore { #private; objects(): GitObject[]; get(id: string): Promise; put(objects: readonly GitObject[]): Promise; } export declare class StagedObjects implements ObjectStore { #private; constructor(under: ObjectStore); get(id: string): Promise; put(objects: readonly GitObject[]): Promise; flush(): Promise; }