/**
 * Tool Groups
 *
 * Inspired by OpenClaw's tool-policy.ts
 * Defines logical groups of tools for policy management.
 */
/**
 * Tool group identifiers
 * Hierarchical structure: group:category:subcategory
 */
export type ToolGroup = 'group:all' | 'group:fs' | 'group:fs:read' | 'group:fs:write' | 'group:fs:delete' | 'group:runtime' | 'group:runtime:bash' | 'group:runtime:node' | 'group:web' | 'group:web:fetch' | 'group:web:browser' | 'group:git' | 'group:git:read' | 'group:git:write' | 'group:docker' | 'group:messaging' | 'group:memory' | 'group:agent' | 'group:system' | 'group:dangerous';
/**
 * Mapping of tool groups to individual tools
 */
export declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
/**
 * Tool name aliases for normalization
 */
export declare const TOOL_ALIASES: Record<string, string>;
/**
 * Normalize a tool name to canonical form
 */
export declare function normalizeToolName(name: string): string;
/**
 * Normalize a list of tool names
 */
export declare function normalizeToolList(tools: string[]): string[];
/**
 * Check if a string is a tool group
 */
export declare function isToolGroup(value: string): value is ToolGroup;
/**
 * Expand tool groups into individual tools
 */
export declare function expandToolGroups(tools: string[], groups?: Record<string, string[]>): string[];
/**
 * Get all tools in a group (including subgroups)
 */
export declare function getToolsInGroup(group: ToolGroup): string[];
/**
 * Check if a tool belongs to a group
 */
export declare function isToolInGroup(tool: string, group: ToolGroup): boolean;
/**
 * Get all groups a tool belongs to
 */
export declare function getToolGroups(tool: string): ToolGroup[];
