import { Logger } from '@n8n/backend-common'; import { type InstanceType } from '@n8n/constants'; import type { ReportingOptions } from '@n8n/errors'; import type { ErrorEvent, EventHint } from '@sentry/core'; import { Tracing } from '../observability'; type SentryIntegration = 'Redis' | 'Postgres' | 'Http' | 'Express'; type ErrorReporterInitOptions = { serverType: InstanceType | 'task_runner'; dsn: string; release: string; environment: string; serverName: string; releaseDate?: Date; withEventLoopBlockDetection: boolean; eventLoopBlockThreshold?: number; tracesSampleRate: number; profilesSampleRate: number; beforeSendFilter?: (event: ErrorEvent, hint: EventHint) => boolean; eligibleIntegrations?: Partial>; healthEndpoint?: string; }; export declare class ErrorReporter { private readonly logger; private readonly tracing; private expirationTimer?; private seenErrors; private report; private beforeSendFilter?; constructor(logger: Logger, tracing: Tracing); private defaultReport; shutdown(timeoutInMs?: number): Promise; init({ beforeSendFilter, dsn, serverType, release, environment, serverName, releaseDate, withEventLoopBlockDetection, eventLoopBlockThreshold, profilesSampleRate, tracesSampleRate, eligibleIntegrations, healthEndpoint, }: ErrorReporterInitOptions): Promise; beforeSend(event: ErrorEvent, hint: EventHint): Promise; error(e: unknown, options?: ReportingOptions): void; warn(warning: Error | string, options?: ReportingOptions): void; info(msg: string, options?: ReportingOptions): void; private wrap; private isIgnoredSqliteError; private isIgnoredN8nError; private extractEventDetailsFromN8nError; private getEventLoopBlockIntegration; private getProfilingIntegration; } export {};