import { EntityType, EntityExtractionResult, BusinessContext } from '../../types/src/types'; export interface ExtractionPattern { regex: RegExp; entityType: EntityType; confidence: number; processor?: (match: RegExpMatchArray, fullText: string) => string; validator?: (value: string) => boolean; priority: number; } export interface ExtractionConfig { enableAdvancedPatterns: boolean; enableContextualExtraction: boolean; enableMultipleEntityTypes: boolean; confidenceThreshold: number; maxEntitiesPerType: number; } /** * Advanced entity extraction system for voice commands * Extracts specific business-relevant information from natural language */ export declare class EntityExtractor { private config; private patterns; private businessContext?; constructor(businessContext?: BusinessContext, config?: ExtractionConfig); /** * Initialize extraction patterns */ private initializePatterns; /** * Add business context-specific patterns */ private addBusinessContextPatterns; /** * Get domain-specific extraction patterns */ private getDomainSpecificPatterns; /** * Get capability-specific extraction patterns */ private getCapabilitySpecificPatterns; /** * Extract entities from text */ extractEntities(text: string): EntityExtractionResult; /** * Check for overlapping text ranges */ private hasOverlap; /** * Create unique entity key for multiple entities of same type */ private createEntityKey; /** * Apply contextual extraction for improved accuracy */ private applyContextualExtraction; /** * Calculate confidence bonus based on context */ private calculateContextBonus; /** * Extract implied entities based on existing extractions */ private extractImpliedEntities; /** * Find missing required entities based on command context */ private findMissingRequiredEntities; /** * Clean person name extraction */ private cleanPersonName; /** * Clean message content */ private cleanMessageContent; /** * Clean project name */ private cleanProjectName; /** * Clean team name */ private cleanTeamName; /** * Clean location */ private cleanLocation; /** * Update business context */ updateBusinessContext(context: BusinessContext): void; /** * Update extraction configuration */ updateConfig(config: Partial): void; /** * Add custom extraction pattern */ addCustomPattern(pattern: ExtractionPattern): void; /** * Get extraction statistics for debugging */ getExtractionStats(texts: string[]): { totalTexts: number; avgEntitiesPerText: number; avgConfidence: number; entityTypeBreakdown: Record; mostCommonEntities: Array<{ type: EntityType; count: number; }>; }; /** * Test extraction pattern */ testPattern(pattern: ExtractionPattern, testTexts: string[]): { matches: number; avgConfidence: number; examples: Array<{ text: string; extracted: string; confidence: number; }>; }; }