/**
 * Pattern Matcher
 *
 * Matches commands against patterns using various matching strategies:
 * - Exact: String equality
 * - Prefix: Command starts with pattern
 * - Glob: Shell-like glob patterns (*, ?, etc.)
 * - Regex: Full regular expression matching
 */
import type { PatternType, ApprovalPattern } from './types.js';
/**
 * Match a command against a pattern
 * @param command Command string to check
 * @param pattern Pattern to match against
 * @param type Type of pattern matching
 * @returns True if command matches pattern
 */
export declare function matchPattern(command: string, pattern: string, type: PatternType): boolean;
/**
 * Match a command against an ApprovalPattern
 */
export declare function matchApprovalPattern(command: string, pattern: ApprovalPattern): boolean;
/**
 * Find the best matching pattern from a list
 * @param command Command to match
 * @param patterns List of patterns to check
 * @returns Best matching pattern or undefined
 */
export declare function findBestMatch(command: string, patterns: ApprovalPattern[]): ApprovalPattern | undefined;
/**
 * Validate a pattern before saving
 */
export declare function validatePattern(pattern: string, type: PatternType): {
    valid: boolean;
    error?: string;
};
/**
 * Generate a suggested pattern from a command
 */
export declare function suggestPattern(command: string): {
    pattern: string;
    type: PatternType;
};
/**
 * Extract the base command (first word) from a command string
 */
export declare function extractBaseCommand(command: string): string;
/**
 * Check if a pattern would match dangerous commands
 */
export declare function isPatternDangerous(pattern: string, type: PatternType): boolean;
