import type { SessionMode } from "./session-mode.js"; type AppStateLike = { get(key: string): T; set(key: string, value: unknown): void; }; type AgentLike = { appState: AppStateLike; }; export declare const ENTER_PLAN_MODE_TOOL = "enter_plan_mode"; export declare const EXIT_PLAN_MODE_TOOL = "exit_plan_mode"; export declare const INTERNAL_ALWAYS_ALLOWED: Set; /** * In session mode `plan`, block `write_file` / `edit_file` unless the target path resolves * under the app plans directory. Runs before session-wide “always allow” so plan boundaries * cannot be overridden by tooling preferences. */ export declare function planModeWriteEditRejectionMessage(agent: AgentLike, toolName: string, toolInput: unknown): string | null; export declare function getSessionAllowedTools(agent: AgentLike): string[]; /** * Session-wide tool allowlist ("always allow" in UI), plus implicit allow for * read/write/edit when paths resolve under attachments or plans (reads), or * plans only (writes/edits). */ export declare function isToolSessionAllowed(agent: AgentLike, toolName: string, toolInput?: unknown): boolean; export declare function isToolVisible(mode: SessionMode, toolName: string, options?: { mcpReadOnlyHint?: boolean; }): boolean; export declare function allowToolForSession(agent: AgentLike, toolName: string): void; export {};