/** * File Executor Registry (2.10.0). * * Local durable implementation of the ExecutorRegistryStore port. Records are * written atomically (unique temp + fsync + rename) and schema-validated on * load. Each executor record is independently locked cross-process with * proper-lockfile, so unrelated executor ids can mutate concurrently. * * Concurrency model mirrors FileDurableMissionStore: the lock protects only the * short read-validate-write critical section, never held across heartbeat * cadences, model inference, or resource collection. */ import { type ExecutorLoadResult, type ExecutorMutateResult, type ExecutorMutation, type ExecutorRegisterResult, type ExecutorRegistryStore } from "./executor-registry-store.js"; import { type ExecutorRecord } from "./executor-registry-types.js"; export interface FileExecutorRegistryOptions { root: string; storeId?: string; lockStaleMs?: number; lockRetries?: number; lockMinTimeoutMs?: number; lockMaxTimeoutMs?: number; } export declare function defaultExecutorRegistryRoot(): string; export declare class FileExecutorRegistry implements ExecutorRegistryStore { readonly storeId: string; private readonly root; private readonly lockStaleMs; private readonly lockRetries; private readonly lockMinTimeoutMs; private readonly lockMaxTimeoutMs; constructor(options: FileExecutorRegistryOptions); private resolve; private assertExecutorId; private writeAtomic; private readRaw; private withFileLock; private readParsed; register(record: ExecutorRecord): Promise; load(executorId: string): Promise; mutate(executorId: string, mutation: (current: ExecutorRecord) => ExecutorMutation): Promise>; listExecutors(): Promise; } /** Convenience factory using the default Jensen executor registry directory. */ export declare function createFileExecutorRegistry(root?: string): FileExecutorRegistry; //# sourceMappingURL=file-executor-registry.d.ts.map