import type { SymbolKind } from "../types.js";
export interface PatternMatch {
    name: string;
    kind: SymbolKind;
    file: string;
    start_line: number;
    end_line: number;
    matched_pattern: string;
    context: string;
}
export interface PatternResult {
    matches: PatternMatch[];
    pattern: string;
    scanned_symbols: number;
}
export declare const BUILTIN_PATTERNS: Record<string, {
    regex: RegExp;
    description: string;
    fileExcludePattern?: RegExp;
    fileIncludePattern?: RegExp;
    severity?: "critical" | "warning" | "style";
    postFilter?: (match: string) => boolean;
    /**
     * Tier 8 — preprocess source before regex match. "strip-comments-strings"
     * replaces all comment/string/template/regex literal content with whitespace
     * (preserves character positions). Prevents comment- or string-embedded code
     * from spoofing pattern detection. Opt-in per pattern (perf cost: ~O(N) scan).
     */
    preprocess?: "strip-comments-strings";
}>;
/**
 * Search for structural code patterns across indexed symbols.
 * Supports built-in patterns (by name) or custom regex.
 */
export declare function searchPatterns(repo: string, pattern: string, options?: {
    file_pattern?: string | undefined;
    include_tests?: boolean | undefined;
    max_results?: number | undefined;
}): Promise<PatternResult>;
/**
 * List all available built-in patterns.
 */
export declare function listPatterns(): Array<{
    name: string;
    description: string;
    fileExcludePattern?: string;
    fileIncludePattern?: string;
}>;
//# sourceMappingURL=pattern-tools.d.ts.map