import { type MidTurnState } from './midturn-settlement.js'; export interface CoordinatorDeps { /** 出网;返回 GatewayClient.send 的布尔值。frame 已含 client_msg_id;coordinator 只决定是否加 midTurn:true。 */ send(frame: Record): boolean; isArmed(): boolean; currentEpoch(): number; busy(conversationId: string): boolean; allowMidTurn(): boolean; read(conversationId: string, msgId: string): MidTurnState | undefined; write(conversationId: string, msgId: string, state: MidTurnState): void; listTracked(conversationId?: string): Array<{ conversationId: string; msgId: string; }>; } export declare class MidTurnCoordinator { private deps; private held; private willRetryTurnIds; private convOf; constructor(deps: CoordinatorDeps); private enqueueHeld; heldCount(conversationId: string): number; /** 见下「submit 定序」。返回「是否已出网或已入 held」(held 也算 true:消息已被接管,hook 不 throw);不建机器时 = deps.send 的返回值。⛔ 只回布尔、不回状态(A15 静态闸:本文件不得出现 settlement 冒号字面量,⛔ 连注释里也别写)。 */ submit(conversationId: string, msgId: string, frame: Record): boolean; private applyEach; private apply; /** forcePlain(只有 E12 路径传真,gw#2824):held 项一律按普通帧放出并级联,不看会话忙不忙——message_dropped 可以早于宿主 finish 到达,那时按忙判会把 held 项当插话发出去。 */ private drain; private rememberWillRetryTurn; /** raw 入站帧 → E1/E2/E3/E4/E6/E12(按 spec §4.1 过滤;session_ready 只产 E6)。⛔ 在 processing 集合更新之后调。 */ onServerEvent(event: unknown): void; private static readonly E9_CAUSES; /** outbox 回调 → E9/E11(pending / arm_timeout / disarm / conn_terminal 不产事件)。 */ onDeliveryState(msgId: string, state: 'pending' | 'delivered' | 'failed', cause?: string): void; onConnectionTerminal(epochBelow?: number): void; onConversationGone(c: string): void; onEscapeHatch(c: string): void; } //# sourceMappingURL=midturn-coordinator.d.ts.map