/** * Pattern Matching Utilities * * Provides glob-like pattern matching for autonomy configuration, * tool filtering, and other pattern-based matching needs. * * Supports: * - * matches any sequence of characters * - ? matches any single character * * @example * ```typescript * matchesPattern('deploy_prod', 'deploy_*'); // true * matchesPattern('deploy_prod', 'deploy_???'); // false (only 3 chars after _) * patternsConflict('deploy_*', 'deploy_prod'); // true * ``` */ /** Maximum allowed glob pattern length to prevent ReDoS (Issue #388) */ export declare const MAX_GLOB_PATTERN_LENGTH = 500; /** Maximum allowed text length for pattern matching (Issue #388) */ export declare const MAX_PATTERN_MATCH_TEXT_LENGTH = 10000; /** * Convert a glob pattern to a RegExp (cached). * * Compiled regexes are cached in an LRU map (max 256 entries) to avoid * recompilation on repeated pattern matching calls. * * @param pattern - Glob pattern with * and ? wildcards * @returns RegExp that matches the pattern (never-matching if pattern exceeds length limit) */ export declare function globToRegex(pattern: string): RegExp; /** * Check if text matches a glob-like pattern * * @param text - The text to match against * @param pattern - Glob pattern with * and ? wildcards * @returns true if text matches the pattern */ export declare function matchesPattern(text: string, pattern: string): boolean; /** * Check if two patterns could potentially conflict * * Two patterns conflict if: * 1. They are identical (exact match) * 2. One pattern could match strings that the other pattern would also match * * This is used to detect configuration conflicts like: * - requiresApproval: ['deploy_*'] with autoApprove: ['deploy_prod'] * → 'deploy_prod' matches 'deploy_*' → conflict * * @param patternA - First pattern * @param patternB - Second pattern * @returns Object with conflict status and details */ export declare function detectPatternConflict(patternA: string, patternB: string): { conflicts: boolean; reason?: string; }; /** * Find all conflicts between two sets of patterns * * @param patternsA - First set of patterns (e.g., requiresApproval) * @param patternsB - Second set of patterns (e.g., autoApprove) * @returns Array of conflict descriptions */ export declare function findPatternConflicts(patternsA: string[], patternsB: string[]): string[]; //# sourceMappingURL=patternMatcher.d.ts.map