import type { RuntimeActionResultHookPayload } from "#channel/types.js"; import type { DeliveryAdmission, SessionInputQueue } from "#execution/session/input-queue.js"; import { type SessionInboxPayload } from "#execution/session-inbox/inbox.js"; import type { WorkflowToolRunMessage } from "#execution/tools/workflow/messages.js"; /** One canonical admission result, after wire decoding but before turn policy. */ type SessionAdmission = { readonly admission: DeliveryAdmission; readonly kind: "delivery"; } | { readonly kind: "cancel"; } | { readonly kind: "consumed"; } | { readonly kind: "runtime-action-result"; readonly payload: RuntimeActionResultHookPayload; } | { readonly kind: "workflow"; readonly message: WorkflowToolRunMessage; }; /** * Decodes and admits one inbox payload. This boundary never decides whether a * delivery steers, starts a turn, or routes to a child; those are selection * and delivery-routing policies owned by their respective layers. */ export declare function admitSessionInboxPayload(value: SessionInboxPayload, input: { readonly queue: SessionInputQueue; }): Promise; export {};