import { type InsightsSummary } from '@n8n/api-types'; import { LicenseState, Logger } from '@n8n/backend-common'; import type { User } from '@n8n/db'; import { InstanceSettings } from 'n8n-core'; import { WorkflowSharingService } from '../../workflows/workflow-sharing.service'; import type { TypeUnit } from './database/entities/insights-shared'; import { InsightsByPeriodRepository } from './database/repositories/insights-by-period.repository'; import { InsightsCompactionService } from './insights-compaction.service'; import { InsightsPruningService } from './insights-pruning.service'; export declare class InsightsService { private readonly insightsByPeriodRepository; private readonly compactionService; private readonly pruningService; private readonly licenseState; private readonly instanceSettings; private readonly logger; private readonly workflowSharingService; constructor(insightsByPeriodRepository: InsightsByPeriodRepository, compactionService: InsightsCompactionService, pruningService: InsightsPruningService, licenseState: LicenseState, instanceSettings: InstanceSettings, logger: Logger, workflowSharingService: WorkflowSharingService); private toggleCollectionService; init(): Promise; startCompactionAndPruningTimers(): void; stopCompactionAndPruningTimers(): Promise; shutdown(): Promise; getInsightsSummary({ startDate, endDate, projectId, }: { projectId?: string; startDate: Date; endDate: Date; }): Promise; getInsightsByWorkflow({ user, skip, take, sortBy, projectId, startDate, endDate, }: { user: User; skip?: number; take?: number; sortBy?: string; projectId?: string; startDate: Date; endDate: Date; }): Promise<{ count: number; data: { workflowId: string | null; workflowName: string; projectId: string | null; projectName: string; total: number; succeeded: number; failed: number; failureRate: number; runTime: number; averageRunTime: number; timeSaved: number; hasReadAccess: boolean; }[]; }>; getInsightsByTime({ insightTypes, projectId, startDate, endDate, }: { insightTypes?: TypeUnit[]; projectId?: string; startDate: Date; endDate: Date; }): Promise<{ date: string; values: { succeeded?: number | undefined; failed?: number | undefined; timeSaved?: number | undefined; } & { total?: number; successRate?: number; failureRate?: number; averageRunTime?: number; }; }[]>; validateDateFiltersLicense({ startDate, endDate }: { startDate: Date; endDate: Date; }): void; private getDateFiltersGranularity; }