/** * Channel-reply resolution of pending permission asks. * * A paired channel owner can approve, deny, or steer a pending ask by * replying in the channel with an explicit verb. The reply is consumed on * the shared ingress path (no session, no chat turn) and resolved through * the same ApprovalBroker the TUI and webui use. */ import type { ChannelIngressPolicyInput, ChannelPolicyDecision } from '../channels/index.js'; import type { ApprovalBroker } from '../control-plane/approval-broker.js'; import type { RouteBindingManager } from '../channels/index.js'; export type ApprovalReplyBroker = Pick; /** * Parse an owner's channel reply as an approval verb. Only explicit verbs are * consumed, anything else flows through as a normal message. The text after * the verb becomes the steering note carried on the resolution. */ export declare function parseApprovalReplyVerb(text: string | undefined): { readonly approved: boolean; readonly note?: string | undefined; } | null; /** * When the paired owner replies with an explicit approve/deny verb and a * pending ask exists, resolve that ask through the shared ApprovalBroker. * Matching prefers asks whose route binding points at this surface; with no * surface-bound match, a single platform-wide pending ask is unambiguous and * is resolved; anything more ambiguous is left alone (the message then flows * through as a normal chat turn). Returns true when a reply was consumed. */ export declare function tryResolveApprovalReplyFromChannel(input: ChannelIngressPolicyInput, decision: ChannelPolicyDecision, deps: { readonly approvalBroker?: ApprovalReplyBroker | undefined; readonly routeBindings: Pick; }): Promise; //# sourceMappingURL=approval-reply.d.ts.map