/** * Smart Automation Types * * Types for pattern learning, auto-labeling, and intelligent automation */ export interface AutomationPattern { id: string; type: 'label' | 'assignment' | 'status' | 'duplicate'; pattern: Record; confidence: number; frequency: number; lastUsed?: Date; createdAt: Date; updatedAt: Date; } export interface LabelPattern extends AutomationPattern { type: 'label'; keywords: string[]; labels: string[]; pattern: { keywords: string[]; labels: string[]; context?: 'summary' | 'description' | 'both'; }; } export interface AssignmentPattern extends AutomationPattern { type: 'assignment'; issueType: string; labels?: string[]; assigneeId: string; pattern: { issueType: string; labels: string[]; assignee: string; project?: string; }; } export interface StatusTransitionPattern extends AutomationPattern { type: 'status'; fromStatus: string; toStatus: string; conditions: { days?: number; activity?: string; timeInStatus?: number; activityCount?: number; labelRequired?: string[]; }; pattern: { fromStatus: string; toStatus: string; conditions: { timeInStatus?: number; activityCount?: number; labelRequired?: string[]; }; }; } export interface DuplicatePattern extends AutomationPattern { type: 'duplicate'; pattern: { similarityThreshold: number; fields: ('summary' | 'description')[]; timeWindow?: number; }; } export interface AutomationConfig { enabled: boolean; autoLabel: { enabled: boolean; confidenceThreshold: number; learnFromHistory: boolean; }; autoAssign: { enabled: boolean; requireApproval: boolean; workloadBalance: boolean; }; autoTransition: { enabled: boolean; stagnationDays: number; requireActivity: boolean; }; duplicateDetection: { enabled: boolean; similarityThreshold: number; autoLink: boolean; }; } export interface PatternMatch { pattern: AutomationPattern; confidence: number; suggestedAction: string; metadata?: Record; } //# sourceMappingURL=types.d.ts.map