import { type DurableJournal, type JournalRecoveryState } from "@claudexor/journal"; import type { ControlJournalValidation } from "@claudexor/schema"; import type { JournalProjectionDescriptor, JournalProjectionSlot } from "./journal-projection.js"; export interface ProjectionRegistration { descriptor: JournalProjectionDescriptor; slot: ProjectionSlot; } export declare function prepareProjectionSlots(registrations: Iterable, journal: DurableJournal): { status: ControlJournalValidation["projectionStatus"]; recovery: Extract | null; }; export declare class ProjectionSlot implements JournalProjectionSlot { private readonly recovery; private value; private preparedValue; private generationValue; constructor(recovery: () => JournalRecoveryState); current(): T; prepared(): T; generation(): number; bind(value: T, generation: number): void; bindPrepared(value: T): void; activate(generation: number): void; clear(): void; } //# sourceMappingURL=journal-projection-slot.d.ts.map