import { IntentType } from '../../intents/intents.constants'; import { SuggestionType } from '../buddy.constants'; import { EvaluatorRulesLoaderService } from '../spec/evaluator-rules-loader.service'; import { ActionObserverService, ActionTarget } from './action-observer.service'; import { BuddyContext } from './buddy-context.service'; import { EvaluatorResult, HeartbeatEvaluator } from './heartbeat.types'; export interface DetectedPattern { intentType: IntentType; spaceId: string; timeOfDay: { hour: number; minute: number; }; occurrences: number; confidence: number; firstSeen: Date; lastSeen: Date; latestTargets?: ActionTarget[]; latestValue?: unknown; } export declare function patternToEvaluatorResult(pattern: DetectedPattern, spaceName: string, rule?: { suggestionType: SuggestionType; messages: { title: string; reason: string; }; }): EvaluatorResult; export declare class PatternDetectorService implements HeartbeatEvaluator { private readonly actionObserver; private readonly rulesLoader; readonly name = "PatternDetector"; private readonly logger; private static readonly CACHE_TTL_MS; private patternCache; private patternCacheTime; constructor(actionObserver: ActionObserverService, rulesLoader: EvaluatorRulesLoaderService); evaluate(context: BuddyContext): Promise; detectPatterns(): DetectedPattern[]; private getPatternsCached; private groupActions; private clusterActions; }