/**
 * Global confirmation queue for the MAIN agent's tool calls.
 *
 * When the conversation loop reaches a tool that needs user approval, it calls
 * signalToolConfirm() which suspends until the UI resolves the promise with the
 * user's decision (true = approved, false = declined). This lets the single
 * tool-execution routine gate each call inline instead of handing off to a
 * separate confirmation state machine.
 *
 * Mirrors tool-approval-queue.ts (subagent approvals) and question-queue.ts —
 * a module-level singleton handler set by the UI, called from the loop. A
 * separate slot from the subagent queue: a subagent's tool can need approval
 * while the parent agent is mid-turn, so the two must not collide.
 */
import type { ToolCall } from '../types/core.js';
export interface PendingToolConfirmation {
    /** The tool call awaiting the user's approve/decline decision. */
    toolCall: ToolCall;
}
/** Called once from the UI to wire up the confirmation handler. */
export declare const setGlobalToolConfirmHandler: (handler: (input: PendingToolConfirmation) => Promise<boolean>) => void;
/**
 * Called from the conversation loop when a tool needs approval.
 * Returns a Promise that resolves to true (approved) or false (declined).
 */
export declare const signalToolConfirm: (input: PendingToolConfirmation) => Promise<boolean>;
//# sourceMappingURL=tool-confirm-queue.d.ts.map