/** * Channel exec-approval gate — plugins register handlers; agent runtime invokes before risky tools. */ import type { Config } from '../config/schema.js'; export interface ExecApprovalRequestPayload { sessionKey: string; channel: string; chatId: string; accountId?: string; toolName: string; summary: string; details?: Record; } export interface ExecApprovalHandler { isEnabled(cfg: Config, params: { channel: string; accountId?: string; }): boolean; requestApproval(cfg: Config, payload: ExecApprovalRequestPayload): Promise; } export declare function registerChannelExecApprovalHandler(channelId: string, handler: ExecApprovalHandler): () => void; export declare function maybeRequestChannelExecApproval(params: { cfg: Config; payload: ExecApprovalRequestPayload; }): Promise<{ required: boolean; approved: boolean; reason?: string; }>;