import { JournalEvent } from "../../storage/types"; import { EffectRecord } from "../types"; export interface BuildEffectIndexOptions { runDir: string; events?: JournalEvent[]; } export declare class EffectIndex { private readonly runDir; private readonly byInvocation; private readonly byEffectId; private journalHead?; private initialized; private constructor(); static build(options: BuildEffectIndexOptions): Promise; private applyEvents; applyEvent(event: JournalEvent, expectedSeq?: number, options?: { skipSequenceValidation?: boolean; }): void; getByInvocation(invocationKey: string): EffectRecord | undefined; getByEffectId(effectId: string): EffectRecord | undefined; listEffects(): EffectRecord[]; listPendingEffects(): EffectRecord[]; getJournalHead(): { seq: number; ulid: string; } | undefined; private validateSequence; private handleEffectRequested; private handleEffectResolved; private handleEffectCancelled; private handleEffectProgress; private handleCostTracked; private expectObject; private expectString; private expectOptionalString; private normalizeLabelArray; } export declare function buildEffectIndex(options: BuildEffectIndexOptions): Promise; //# sourceMappingURL=effectIndex.d.ts.map