import { type LeafEntry, type SessionMetadata, type SessionStorage, type SessionTreeEntry } from "../types.js"; /** Return the visible-leaf update represented by one session tree entry. */ export declare function leafIdUpdateAfterEntry(entry: SessionTreeEntry): string | null | undefined; /** Return the raw parent for the next append after applying a tree entry. */ export declare function appendParentIdAfterEntry(entry: SessionTreeEntry): string | null; export declare abstract class BaseSessionStorage implements SessionStorage { private readonly metadata; private readonly entries; private readonly byId; private readonly labelsById; private readonly logicalParentsById; private leafId; private appendParentId; protected constructor(metadata: TMetadata, entries: SessionTreeEntry[], leafId?: string | null, appendParentId?: string | null); getMetadata(): Promise; getLeafId(): Promise; getAppendParentId(): Promise; protected createLeafEntry(leafId: string | null): LeafEntry; createEntryId(): Promise; protected validateEntryForAppend(entry: SessionTreeEntry): void; protected recordEntry(entry: SessionTreeEntry): void; getEntry(id: string): Promise; findEntries(type: TType): Promise>>; getLabel(id: string): Promise; getPathToRoot(leafId: string | null): Promise; getEntries(): Promise; abstract setLeafId(leafId: string | null): Promise; abstract appendEntry(entry: SessionTreeEntry): Promise; }