/** * File Scheduler Store (2.12.0). * * Local durable implementation of the SchedulingIntentStore port. One small * record file per intent, schema-validated on load, written atomically * (unique temp + fsync + rename). Intent identity is deterministic per mission * (`intent_`), so enqueue and tick are idempotent across processes. * * Cross-process model: * - All mutations for an intent serialize on a per-intent proper-lockfile * lock. Two processes racing to enqueue/transition the same mission's * intent therefore serialize; the loser observes the winner's record. * - Unrelated intents lock different paths and never globally serialize. */ import { type SchedulingIntentCreateResult, type SchedulingIntentListRecordsResult, type SchedulingIntentLoadResult, type SchedulingIntentMutateResult, type SchedulingIntentMutation, type SchedulingIntentStore } from "./scheduler-store.js"; import { type SchedulingIntentRecord } from "./scheduler-types.js"; export interface FileSchedulerStoreOptions { root: string; storeId?: string; lockStaleMs?: number; lockRetries?: number; lockMinTimeoutMs?: number; lockMaxTimeoutMs?: number; } export declare function defaultSchedulerRoot(): string; export declare class FileSchedulerStore implements SchedulingIntentStore { readonly storeId: string; private readonly root; private readonly lockStaleMs; private readonly lockRetries; private readonly lockMinTimeoutMs; private readonly lockMaxTimeoutMs; constructor(options: FileSchedulerStoreOptions); private resolve; private assertIntentId; private writeAtomic; private readRaw; private withIntentLock; create(record: SchedulingIntentRecord): Promise; load(intentId: string): Promise; listIntents(): Promise; listRecords(): Promise; mutate(intentId: string, mutation: (current: SchedulingIntentRecord) => SchedulingIntentMutation): Promise>; } /** Convenience factory using the default Jensen scheduler registry directory. */ export declare function createFileSchedulerStore(root?: string): FileSchedulerStore; //# sourceMappingURL=file-scheduler-store.d.ts.map