import type { ToolPermission } from "../core/types.js";
import type { AgentMode } from "./types.js";
export type ModePermissions = {
    allowWrite: boolean;
    allowShell: boolean;
};
export declare function initialAgentMode(permissions: ModePermissions): AgentMode;
export declare function nextAgentMode(currentMode: AgentMode): AgentMode;
export declare function permissionsForMode(mode: AgentMode): ModePermissions;
export declare function modePermissionLabel(mode: AgentMode, permission: "write" | "shell", permissions?: ModePermissions): string;
export declare function shouldBypassApproval(options: {
    mode: AgentMode;
    permission: Exclude<ToolPermission, "none">;
    permissions: ModePermissions;
    allowExternalFileAnalysis: boolean;
}): boolean;
export declare function modeDescription(mode: AgentMode): string;
