import type { ApprovalInfo, PendingToolCallInfo } from "./ToolCallDisplay";
/**
 * Approval execution for the approval card. Pure module (no React) so the
 * batch/single routing and the partial-completion filtering are directly
 * unit-testable. Unlike the old in-component handlers, failures THROW so the
 * card can surface an inline retryable error instead of a console line or an
 * alert().
 */
export declare function dispatchToolApprovalResolved(detail: {
    agentId: string;
    messageId: string;
    toolCallId: string;
    approved: boolean;
}): void;
/**
 * Approve or reject a set of pending tool calls.
 *
 * Approving more than one call uses the batch endpoint and dispatches
 * "agent:toolApprovalResolved" only for the ids the server reports as
 * approved (falling back to all when the response omits the list) — this
 * partial-completion filter is what keeps "Approve All" from executing a call
 * twice. Rejection (and single approval) goes through the per-call endpoints.
 */
export declare function resolvePendingToolCalls(params: {
    agentId: string;
    pending: PendingToolCallInfo[];
    approved: boolean;
}): Promise<void>;
/**
 * Switch the agent to autonomous mode, then approve the remaining pending
 * calls so the paused run continues (the mode change alone does not release a
 * run waiting for approval). `onSwitched` fires as soon as the settings
 * update succeeds so the UI mode state can update even if the follow-up
 * approval fails.
 */
export declare function switchToAutonomousAndApprove(params: {
    agentId: string;
    pending: PendingToolCallInfo[];
    onSwitched?: () => void;
}): Promise<void>;
/**
 * Create a subtree delete allowance for the pending call's parent item, then
 * approve the call itself.
 */
export declare function approveWithDeleteAllowance(params: {
    agentId: string;
    pending: PendingToolCallInfo;
    allowableScope: NonNullable<ApprovalInfo["allowableScope"]>;
}): Promise<void>;
