/** * Pattern Matcher * * Matches new issues against learned patterns and suggests actions */ import type { JiraIssue } from '../types'; import type { AutomationPattern } from './types'; export interface MatchResult { pattern: AutomationPattern; confidence: number; suggestedAction: any; } export interface MatchSuggestions { labels?: { suggested: string[]; confidence: number; }; assignment?: { suggestedAssignee: string; confidence: number; reason: string; }; status?: { suggestedTransition: string; confidence: number; reason: string; }; duplicates?: { similarIssues: Array<{ key: string; similarity: number; }>; confidence: number; }; } export declare class PatternMatcher { private patterns; /** * Load patterns to match against */ loadPatterns(patterns: AutomationPattern[]): void; /** * Match an issue against all patterns and get suggestions */ matchIssue(issue: JiraIssue): MatchSuggestions; /** * Match label patterns */ private matchLabelPatterns; /** * Calculate confidence for label pattern match */ private calculateLabelConfidence; /** * Match assignment patterns */ private matchAssignmentPatterns; /** * Calculate confidence for assignment pattern match */ private calculateAssignmentConfidence; /** * Match status transition patterns */ private matchStatusPatterns; /** * Calculate confidence for status transition pattern match */ private calculateStatusConfidence; /** * Find duplicate candidates */ findDuplicates(issue: JiraIssue, allIssues: JiraIssue[], threshold?: number): Array<{ issue: JiraIssue; similarity: number; }>; /** * Extract text for similarity comparison */ private extractIssueText; /** * Calculate text similarity (simple Jaccard similarity) */ private calculateSimilarity; } //# sourceMappingURL=pattern-matcher.d.ts.map