import { Session } from "../session.ts";
import { type ForkOptions, type SessionRepo } from "../types.ts";
import type { JsonlSessionCreateOptions, JsonlSessionListOptions, JsonlSessionMetadata, JsonlSessionRepoOptions } from "./types.ts";
export declare class JsonlSessionRepo implements SessionRepo<JsonlSessionMetadata, JsonlSessionCreateOptions, JsonlSessionListOptions> {
    private readonly fs;
    private readonly sessionsRootInput;
    private rootPromise;
    constructor(options: JsonlSessionRepoOptions);
    create(options: JsonlSessionCreateOptions): Promise<Session<JsonlSessionMetadata>>;
    open(metadata: JsonlSessionMetadata): Promise<Session<JsonlSessionMetadata>>;
    list(): Promise<JsonlSessionMetadata[]>;
    list(options: JsonlSessionListOptions): Promise<JsonlSessionMetadata[]>;
    delete(metadata: JsonlSessionMetadata): Promise<void>;
    fork(source: JsonlSessionMetadata, options: ForkOptions & JsonlSessionCreateOptions): Promise<Session<JsonlSessionMetadata>>;
    private loadStorage;
    private prepareCreate;
    private listDirect;
    private sessionIdExists;
    private sessionDirectories;
    private sessionDirectory;
    private root;
}
//# sourceMappingURL=repo.d.ts.map