import type { VibeCodingDomain } from '../schemas/input.schema.js'; /** * Defines a pattern that identifies hand-rolled code which could be * replaced by a battle-tested third-party library. * * NOTE: This interface intentionally contains NO library recommendation data. * Library recommendations are the AI agent's responsibility — the agent uses * its own knowledge + Context7 MCP to determine the best library for each * detection at runtime, considering the project's framework, existing deps, * and architectural context. */ export interface PatternDefinition { /** Unique identifier for this pattern (e.g., "i18n-manual-pluralization") */ id: string; /** The Vibe Coding domain this pattern belongs to */ domain: VibeCodingDomain; /** Human-readable description of what this pattern detects */ description: string; /** Glob patterns for files to scan */ filePatterns: string[]; /** Regex patterns to match hand-rolled code */ codePatterns: RegExp[]; /** Base confidence score for this pattern (0–1) */ confidenceBase: number; } /** * Returns the full pattern catalog covering Vibe Coding domains. * * Domain assignment rules: * - Each pattern goes in its MOST SPECIFIC domain (e.g., A/B test → ab-testing-experimentation, not growth-hacking) * - Parent domains (growth-hacking, observability, ux-completeness) are used only when no specific child domain fits * - Domains with no regex-detectable patterns are left for Gap Analysis (AI Agent) * * The catalog defines WHAT to detect, not WHAT to recommend. */ export declare function getPatternCatalog(): PatternDefinition[]; /** * Returns patterns filtered to a specific Vibe Coding domain. */ export declare function getPatternsForDomain(domain: string): PatternDefinition[]; //# sourceMappingURL=pattern-catalog.d.ts.map