/** * Filter rules - Strategy pattern for tool filtering */ import type { CompiledRegex } from '../types.js'; import type { ToolDefinition } from '../../types/profile.js'; import type { OperationDetector } from '../operation/operation-detector.js'; /** * Filter rule interface */ export interface FilterRule { matches(toolNameOrTool: string | ToolDefinition): boolean; getReason(): string; } /** * Exact name match rule */ export declare class ExactMatchRule implements FilterRule { private names; private type; constructor(names: Set, type: 'allow' | 'deny'); matches(toolNameOrTool: string | ToolDefinition): boolean; getReason(): string; } /** * Regex pattern match rule */ export declare class RegexMatchRule implements FilterRule { private patterns; private type; constructor(patterns: CompiledRegex[], type: 'allow' | 'deny'); matches(toolNameOrTool: string | ToolDefinition): boolean; getReason(): string; } /** * Category match rule - matches based on operation categories */ export declare class CategoryMatchRule implements FilterRule { private allowedCategories; private detector; constructor(allowedCategories: Set<'list' | 'read'>, detector: OperationDetector); matches(toolNameOrTool: string | ToolDefinition): boolean; getReason(): string; } //# sourceMappingURL=filter-rules.d.ts.map