import type { ApprovalOutcome, ApprovalRequest } from '@deepseek-ai/dsh-user-approval'; /** A channel may answer only its own authenticated scope, otherwise it delegates. */ export type HumanApprovalAnswerer = (request: Readonly, next: () => Promise) => Promise; /** * Composition inside the native approval waterfall, not another approval store. * Risk review stays outermost; owner channels run before the generic Web remote. * Registrations must be owned by the channel's Cordis effect. A dispatch snapshots * order but checks membership at use time, so an unloaded channel is never called. */ export declare class HumanApprovalRouter { #private; register(answerer: HumanApprovalAnswerer): () => void; dispatch(request: Readonly, fallback: () => Promise): Promise; } //# sourceMappingURL=approval-routing.d.ts.map