/**
 * Source-mode-specific switch tools.
 *
 * Each interactive mode gets its own switch tool surface:
 * - switch_from_action_mode
 * - switch_from_plan_mode
 * - switch_from_installation_mode
 *
 * This avoids stale mode-aware descriptions because the tool contract is
 * fixed for the current/source mode and only advertises that mode's valid
 * outgoing transitions.
 */
import type { ToolDefinition } from '../../core/core-types.js';
import type { AgentSession } from '../agent-session.js';
import { type ApprovalGate, type SwitchModeApprovalData } from '../approvals/types.js';
import { type ModeSettings } from '../modes/switch-mode.js';
export declare function createActionSwitchModeTool(session: () => AgentSession, settings?: ModeSettings, approval?: ApprovalGate<SwitchModeApprovalData>): ToolDefinition;
export declare function createPlanSwitchModeTool(session: () => AgentSession, settings?: ModeSettings, approval?: ApprovalGate<SwitchModeApprovalData>): ToolDefinition;
export declare function createInstallationSwitchModeTool(session: () => AgentSession, settings?: ModeSettings, approval?: ApprovalGate<SwitchModeApprovalData>): ToolDefinition;
//# sourceMappingURL=switch-mode.d.ts.map