export declare const AREA_MAINTENANCE_CURSOR_FORMAT = 1; export type AreaMaintenanceCursor = { format: typeof AREA_MAINTENANCE_CURSOR_FORMAT; epoch: string; pendingAreaIds: readonly string[]; nextIndex: number; }; export type AreaMaintenanceCursorStoreOptions = { rootDir: string; journalSlug: string; layoutEpoch: number; }; export type AreaMaintenanceTarget = { maintenanceAreaIds(): readonly string[]; maintainArea(areaId: string): unknown; }; export type AreaMaintenanceOutcome = { areaId: string; status: "maintained"; result: unknown; } | { areaId: string; status: "isolated"; error: string; }; /** * One tiny cursor per journal layout. It is advanced after each area, not at * the end of a sweep, so a worker restart cannot make a healthy area repeat a * large maintenance pass because another area was corrupt. */ export declare class AreaMaintenanceCursorStore { private readonly store; private constructor(); static open(options: AreaMaintenanceCursorStoreOptions): AreaMaintenanceCursorStore; read(): AreaMaintenanceCursor | undefined; begin(epoch: string, areaIds: readonly string[]): AreaMaintenanceCursor; completeUnit(cursor: AreaMaintenanceCursor, areaId: string): AreaMaintenanceCursor; } /** Execute at most one area maintenance unit and durably checkpoint its result. */ export declare function runBoundedAreaMaintenance(target: AreaMaintenanceTarget, cursorStore: AreaMaintenanceCursorStore, epoch: string): { cursor: AreaMaintenanceCursor; outcome?: AreaMaintenanceOutcome; complete: boolean; }; //# sourceMappingURL=per-area-maintenance.d.ts.map