import { BreakingChangeInstanceRuleResult, BreakingChangeReportResult, BreakingChangeVersion, BreakingChangeWorkflowRuleResult } from '@n8n/api-types'; import { Logger } from '@n8n/backend-common'; import { WorkflowRepository, WorkflowStatisticsRepository } from '@n8n/db'; import { ErrorReporter } from 'n8n-core'; import { CacheService } from '../../services/cache/cache.service'; import { RuleRegistry } from './breaking-changes.rule-registry.service'; import type { IBreakingChangeInstanceRule } from './types'; export declare class BreakingChangeService { private readonly ruleRegistry; private readonly workflowRepository; private readonly workflowStatisticsRepository; private readonly cacheService; private readonly logger; private readonly errorReporter; private readonly batchSize; private static readonly REPORT_DURATION_CACHE_THRESHOLD; private static readonly CACHE_KEY_PREFIX; private readonly ongoingDetections; constructor(ruleRegistry: RuleRegistry, workflowRepository: WorkflowRepository, workflowStatisticsRepository: WorkflowStatisticsRepository, cacheService: CacheService, logger: Logger, errorReporter: ErrorReporter); registerRules(): void; getAllInstanceRulesResults(instanceLevelRules: IBreakingChangeInstanceRule[]): Promise; private groupNodesByType; private aggregateRegularRuleResults; private aggregateBatchRuleResults; private getAllWorkflowRulesResults; refreshDetectionResults(targetVersion: BreakingChangeVersion): Promise; getDetectionResults(targetVersion: BreakingChangeVersion): Promise; private shouldCacheDetection; detect(targetVersion: BreakingChangeVersion): Promise; getDetectionReportForRule(ruleId: string): Promise; private createDetectionReport; }