import type { SubagentChildPolicy } from "./extensions/types.ts"; export declare function createToolNameMatcher(entries: Iterable): (name: string) => boolean; export declare function isMcpToolName(name: string): boolean; interface ToolSelection { _allowedToolNames?: Set; _allowedTools?: (name: string) => boolean; _excludedTools?: (name: string) => boolean; _subagentPolicy?: SubagentChildPolicy; } export declare function isRegisteredToolAllowed(selection: ToolSelection, name: string): boolean; export declare function isToolActivatable(selection: ToolSelection, name: string, exposure: string, hasToolSearch: boolean): boolean; interface SelectedTools { _usesDefaultTools: boolean; _appliedDefaultTools: ReadonlySet; _allowedToolNames?: ReadonlySet; _initialActiveToolNames?: readonly string[]; } /** Tool names the session's selection asked for, whether or not a tool with each name has registered yet. */ export declare function selectedToolNames(selection: SelectedTools): ReadonlySet; /** * Default-active tools activate whenever they register. An opt-in tool (`defaultActive: false`) * activates only on its first registration, and only when the selection names it, such as * `defaultTools: ["+codemode"]` whose extension loads after the session starts. A reload keeps * whatever activation the session has given an already registered opt-in tool since. */ export declare function activatesOnRegistration(selection: SelectedTools, name: string, definition: { exposure?: string; defaultActive?: boolean; } | undefined, alreadyRegistered: boolean): boolean; export {}; //# sourceMappingURL=tool-selection.d.ts.map