/**
 * Tool Groups Mapping
 *
 * Maps individual tools to their hierarchical groups for policy resolution.
 * Each tool can belong to multiple groups (e.g., 'bash' belongs to both
 * 'group:runtime:shell' and 'group:dangerous').
 */
import type { ToolGroup } from './types.js';
/**
 * Mapping of tool names to their groups
 */
export declare const TOOL_GROUPS: Record<string, ToolGroup[]>;
/**
 * Get groups for a tool
 * @param toolName Tool name
 * @returns Array of groups the tool belongs to
 */
export declare function getToolGroups(toolName: string): ToolGroup[];
/**
 * Get all tools in a group (including child groups)
 * @param group Target group
 * @returns Array of tool names in the group
 */
export declare function getToolsInGroup(group: ToolGroup): string[];
/**
 * Check if a tool is in a group (or any child group)
 * @param toolName Tool to check
 * @param group Group to check against
 * @returns True if tool is in group
 */
export declare function isToolInGroup(toolName: string, group: ToolGroup): boolean;
/**
 * Register a new tool with groups
 * @param toolName Tool name to register
 * @param groups Groups the tool belongs to
 */
export declare function registerToolGroups(toolName: string, groups: ToolGroup[]): void;
/**
 * Unregister a tool
 * @param toolName Tool name to unregister
 */
export declare function unregisterToolGroups(toolName: string): void;
/**
 * Get all registered tools
 * @returns Array of all registered tool names
 */
export declare function getAllRegisteredTools(): string[];
/**
 * Get group statistics
 * @returns Map of groups to tool counts
 */
export declare function getGroupStats(): Map<ToolGroup, number>;
