export interface ErrlyOptions { apiKey: string; dsn: string; environment?: string; release?: string; sampleRate?: number; ignoreErrors?: Array; ignoreUrls?: Array; beforeSend?: ((payload: ErrorPayload) => ErrorPayload | null) | null; debug?: boolean; maxBreadcrumbs?: number; attachStacktrace?: boolean; } export interface ErrlyUser { id?: string | number; email?: string; name?: string; [key: string]: unknown; } export interface Breadcrumb { type: 'navigation' | 'click' | 'http' | 'console' | 'custom'; category: string; message: string; data?: Record; timestamp?: string; } export interface CaptureContext { tags?: Record; extra?: Record; user?: ErrlyUser; level?: 'info' | 'warning' | 'error' | 'fatal'; } export interface ErrorPayload { api_key: string; source: 'frontend'; type: 'exception' | 'message'; level: 'info' | 'warning' | 'error' | 'fatal'; message: string; stack?: string; url: string; line?: number; col?: number; filename?: string; environment: string; release?: string; occurred_at: string; browser: { name: string; version: string; os: string; userAgent: string; language: string; viewport: { width: number; height: number; }; }; user?: ErrlyUser; breadcrumbs: Breadcrumb[]; tags?: Record; extra?: Record; }