import type { HarnessEvent, LaneQueuedItem } from "../../agent-harness.ts"; import type { AssistantReadyOperation, CheckpointOperation, CommitResult, NewEntry, NormalizedRetryPolicy, OperationScope, SessionReader, SummaryDecidingOperation, SummaryEffectPendingOperation, SummaryReadyOperation, Write } from "../../session/types.ts"; import type { Lane } from "../lane.ts"; import type { Drive, LaneState, ProcedureResult } from "../types.ts"; export interface BoundaryFinishPending { kind: "finish_pending"; entryIds: string[]; } export interface BoundaryPlacement { entries: NewEntry[]; writes: Write[]; tipId: string | null; inbox: LaneState["inbox"]; triggerEntryId?: string; queues?: LaneQueuedItem[]; } type FinishBoundaryOperation = CheckpointOperation | SummaryDecidingOperation | SummaryReadyOperation | SummaryEffectPendingOperation; export declare function normalizedRetryPolicy(lane: Lane): NormalizedRetryPolicy; export declare function assistantReadyAtBoundary(lane: Lane, state: LaneState, scope: OperationScope, triggerEntryId: string, overflowRecoveryUsed: boolean): AssistantReadyOperation; /** Select and materialize one boundary's lane-owned input without committing it. */ export declare function planBoundaryInbox(lane: Lane, drive: Drive, state: LaneState, scope: OperationScope, reader: SessionReader, tipId: string | null, followUpWhenNoTrigger: boolean): Promise; export declare function boundaryPlacementEvents(placement: BoundaryPlacement, commit: CommitResult, firstWriteIndex: number, lane: string, runId: string): HarnessEvent[]; /** Replan after before_run_end and commit either renewed work or the terminal run result. */ export declare function finishRunBoundary(lane: Lane, drive: Drive, capability: TState, continuation: Extract, plannedEntryIds: readonly string[], pendingEvents?: HarnessEvent[]): Promise; export {}; //# sourceMappingURL=boundary.d.ts.map