import type { PromptReconciliationStatus, SdkPromptTerminalOutcome, TurnPromptReconciliation } from "../prompt-status"; import type { ReceiptState } from "../receipt-state"; import { type TurnResultContent, type TurnResultPage } from "../turn-result"; import { type PromptCorrelation } from "./prompt-reconciliation"; import type { DurableReconciliationRecord, ReconciliationKind, ReconciliationStore } from "./reconciliation-store"; export type { ReconciliationKind }; export interface KindCorrelation extends PromptCorrelation { kind: ReconciliationKind; content?: TurnResultContent; } export interface SteerReconciliationResult { commandId: string; turnId: string; clientRef: string; status: "accepted" | "rejected" | "uncertain"; acceptedAt: number; terminalAt?: number; error?: { code: string; message: string; }; } export interface KindAwareReconciliation { admit(kind: ReconciliationKind, clientRef?: string): void; releaseAdmission(kind: ReconciliationKind, clientRef?: string): void; noteAccepted(kind: ReconciliationKind, correlation: PromptCorrelation, clientRef?: string, extra?: { skillName?: string; }): Promise; noteTransition(kind: ReconciliationKind, correlation: PromptCorrelation | undefined, frame: { type: "agent_start" | "agent_end"; content?: TurnResultContent; } | { type: "agent_failed"; error: unknown; content?: TurnResultContent; }): Promise; claimPendingOutcome(kind: ReconciliationKind, correlation: PromptCorrelation, outcome: SdkPromptTerminalOutcome, receiptState?: Extract): Promise; finalizeOutcome(kind: ReconciliationKind, correlation: PromptCorrelation, outcome?: SdkPromptTerminalOutcome, recordError?: { code: string; message: string; }, content?: unknown): Promise; finalizeOutcome(kind: ReconciliationKind, correlation: PromptCorrelation, outcome?: SdkPromptTerminalOutcome, isCurrent?: () => boolean, recordError?: { code: string; message: string; }, content?: unknown): Promise; /** Replace an exhausted deadline failure with an active, non-definite record. */ markUncertain(kind: ReconciliationKind, correlation: PromptCorrelation, isCurrent?: () => boolean, deadlineMaxAt?: number): Promise; peekPendingOutcome(kind: ReconciliationKind, correlation: PromptCorrelation): SdkPromptTerminalOutcome | undefined; lookup(kind: ReconciliationKind, selector: { commandId?: string; turnId?: string; clientRef?: string; }): TurnPromptReconciliation; lookupResult(kind: ReconciliationKind, selector: { commandId?: string; turnId?: string; clientRef?: string; }): TurnResultPage; reserveSteer(clientRef: string, text: string): Promise<{ replay: boolean; result: SteerReconciliationResult; }>; settleSteer(clientRef: string, status: "accepted" | "rejected" | "uncertain", error?: unknown): Promise; lookupSteer(selector: string | { commandId?: string; turnId?: string; clientRef?: string; }): SteerReconciliationResult | { clientRef?: string; status: "unknown"; }; cleanup(): void; activeCount(kind: ReconciliationKind): number; /** Hydrate from durable store (call once at session host start). */ hydrateFromStore(): Promise; /** Await quiescence of every admitted mutation and the durable store (#4743). */ drain(): Promise; } export declare function createKindAwareReconciliation(options?: { now?: () => number; store?: ReconciliationStore | null; ownedKinds?: readonly DurableReconciliationRecord["kind"][]; }): KindAwareReconciliation; export type { PromptReconciliationStatus };