export type CodexRolloutClaimResult = Readonly<{ outcome: "claimed"; path: string; }> | Readonly<{ outcome: "pending" | "ambiguous"; path: null; }>; type PendingRuntime = Readonly<{ sessionId: string; runtimeEpoch: string; cwd: string; sinceMs: number; requiredRuntimeMarker?: string; }>; /** * Process-epoch rollout ownership for fresh Codex sessions. A path is claimed * at most once. Singleton elimination across every same-root pending launch * handles the common A={a,b}, B={b} race without guessing; an unresolved * many-to-many match remains explicitly ambiguous. */ export declare class CodexRolloutBroker { private readonly homeDir?; private readonly pending; private readonly assignments; private readonly claimedPaths; private queue; constructor(homeDir?: string | undefined); register(input: PendingRuntime): void; release(sessionId: string, runtimeEpoch: string): void; releaseSession(sessionId: string): void; claimExact(input: PendingRuntime & { agentSessionId: string; }): Promise; claimFresh(input: PendingRuntime): Promise; private assign; private serialized; } export {}; //# sourceMappingURL=codex-rollout-broker.d.ts.map