export declare const terminalAgentStatuses: Set; export declare function assertAgentTask(request: { task: string; recursive?: boolean; extensions?: boolean; }): void; /** One semaphore per direct parent: recursive parents never hold their children's permits. */ export declare class AgentAdmission { #private; readonly concurrency: number; readonly maxStarts: number; readonly maxDepth: number; starts: number; constructor(concurrency: number, maxStarts?: number, maxDepth?: number, starts?: number); acquire(parentId: string, signal?: AbortSignal): Promise<() => void>; admit(depth: number): void; } export interface AgentLifecycleState { settled: boolean; result: Promise | undefined; resolve: ((result: T) => void) | undefined; release(): void; abortSignal: AbortSignal | undefined; abortHandler: (() => void) | undefined; } export declare function createAgentLifecycle(release: () => void): AgentLifecycleState; /** Claim settlement once, detach owner cancellation, and release admission exactly once. */ export declare function beginAgentSettlement(state: AgentLifecycleState): boolean; export declare function finishAgentSettlement(state: AgentLifecycleState, result: T): void; /** Cancellation belongs to this observer, not to the participant being observed. */ export declare function waitForAgent(result: Promise, signal?: AbortSignal): Promise; //# sourceMappingURL=lifecycle.d.ts.map