export type QueuedInputLane = "steer" | "followUp"; export interface QueuedInputAdmission { /** * Resolves once every earlier admission in the same lane has queued, been handled, or failed, * or once the session lifetime ends, so closing or reloading the session never waits on a hook * that is itself waiting on that close. Returns undefined when nothing is pending, so an * uncontended submission queues without yielding. */ waitForTurn(): Promise | undefined; release(): void; } export declare const UNORDERED_ADMISSION: QueuedInputAdmission; /** * Reserve a place in a session's steer or follow-up lane at submission time, so asynchronous * input hooks cannot reorder same-lane messages. Input submitted from inside an input hook * is not ordered: the hook may await it, and it would otherwise wait for the hook's own message. */ export declare function reserveQueuedInputAdmission(session: object, lane: QueuedInputLane, lifetime: AbortSignal): QueuedInputAdmission; export declare function runInputHook(hook: () => Promise): Promise; //# sourceMappingURL=queued-input-admission.d.ts.map