import { BaseProviderImpl } from './base-provider-impl.js'; import type { ErrorTrackingProvider } from './base.js'; import type { ErrorContext } from '../definitions.js'; import type { ProviderType } from '../types/provider.js'; interface Breadcrumb { message: string; category?: string; timestamp: number; data?: Record; } /** * Abstract base class for error tracking provider implementations */ export declare abstract class BaseErrorTrackingProvider extends BaseProviderImpl implements ErrorTrackingProvider { readonly type: ProviderType; protected userContext: Record; protected extraContext: Record; protected tags: Record; protected breadcrumbs: Breadcrumb[]; protected maxBreadcrumbs: number; logError(error: Error | string, context?: ErrorContext): Promise; /** * Provider-specific error logging logic */ protected abstract doLogError(error: Error, context: ErrorContext): Promise; logMessage(message: string, level?: 'debug' | 'info' | 'warning'): Promise; /** * Provider-specific message logging logic * Override if provider supports this feature */ protected doLogMessage(message: string, level: 'debug' | 'info' | 'warning'): Promise; addBreadcrumb(message: string, category?: string, data?: Record): void; setUserContext(user: { id?: string; email?: string; username?: string; [key: string]: unknown; }): void; /** * Provider-specific user context logic */ protected abstract doSetUserContext(user: Record): void; setExtraContext(key: string, value: unknown): void; /** * Provider-specific extra context logic */ protected abstract doSetExtraContext(key: string, value: unknown): void; setTags(tags: Record): void; /** * Provider-specific tags logic */ protected abstract doSetTags(tags: Record): void; captureException(exception: Error, context?: ErrorContext): Promise; /** * Provider-specific exception capture logic */ protected abstract doCaptureException(exception: Error, context: ErrorContext): Promise; startTransaction(name: string, operation?: string): unknown; /** * Provider-specific transaction start logic * Override if provider supports this feature */ protected doStartTransaction?(name: string, operation?: string): unknown; finishTransaction(transaction: unknown): void; /** * Provider-specific transaction finish logic * Override if provider supports this feature */ protected doFinishTransaction?(transaction: unknown): void; protected doReset(): Promise; /** * Provider-specific reset logic */ protected abstract doProviderReset(): Promise; /** * Enrich error context with global context data */ protected enrichContext(context?: ErrorContext): ErrorContext; /** * Get current platform */ protected getPlatform(): string; /** * Format error for logging */ protected formatError(error: Error): Record; /** * Extract additional properties from error object */ protected extractErrorProperties(error: Error): Record; } export {};