import { BaseErrorTrackingProvider } from '../../base-error-tracking-provider.js'; import type { ProviderConfig, ConsentSettings } from '../../../types/provider.js'; import type { ErrorContext } from '../../../definitions.js'; interface DataDogConfig extends ProviderConfig { clientToken: string; applicationId: string; site?: string; service?: string; env?: string; version?: string; sessionSampleRate?: number; sessionReplaySampleRate?: number; trackUserInteractions?: boolean; trackResources?: boolean; trackLongTasks?: boolean; defaultPrivacyLevel?: 'allow' | 'mask' | 'mask-user-input'; beforeSend?: (event: any) => boolean | void; silentMultipleInit?: boolean; trackingConsent?: 'granted' | 'not-granted'; compressIntakeRequests?: boolean; proxy?: string; telemetrySampleRate?: number; allowedTracingUrls?: Array; excludedActivityUrls?: Array; workerUrl?: string; proxyUrl?: string; } interface DataDogSDK { init: (config: any) => void; addError: (error: Error | string, context?: any) => void; addAction: (name: string, context?: any) => void; addTiming: (name: string, time?: number) => void; setUser: (user: any) => void; setUserProperty: (key: string, value: any) => void; removeUserProperty: (key: string) => void; clearUser: () => void; setGlobalContextProperty: (key: string, value: any) => void; removeGlobalContextProperty: (key: string) => void; getGlobalContext: () => any; setGlobalContext: (context: any) => void; addLoggerGlobalContext: (key: string, value: any) => void; removeLoggerGlobalContext: (key: string) => void; setLoggerGlobalContext: (context: any) => void; logger: { debug: (message: string, messageContext?: any) => void; info: (message: string, messageContext?: any) => void; warn: (message: string, messageContext?: any) => void; error: (message: string, messageContext?: any) => void; }; startView: (name: string, viewContext?: any) => void; stopView: (name: string, viewContext?: any) => void; startSessionReplayRecording: () => void; stopSessionReplayRecording: () => void; getSessionReplayLink: () => string | undefined; setTrackingConsent: (consent: 'granted' | 'not-granted') => void; } declare global { interface Window { DD_RUM?: DataDogSDK; } } export declare class DataDogErrorTrackingProvider extends BaseErrorTrackingProvider { readonly id = "datadog"; readonly name = "DataDog RUM"; readonly version = "1.0.0"; private dataDog?; private _dataDogConfig; private scriptLoaded; protected doInitialize(config: DataDogConfig): Promise; private loadDataDogSDK; protected doShutdown(): Promise; protected doUpdateConsent(consent: ConsentSettings): Promise; protected doLogError(error: Error | string, context?: ErrorContext): Promise; protected doSetUserContext(user: Record): void; protected doSetExtraContext(key: string, value: any): void; protected doSetTags(tags: Record): void; protected doCaptureException(exception: Error, context: ErrorContext): Promise; protected doProviderReset(): Promise; protected doEnable(): Promise; protected doDisable(): Promise; protected doAddBreadcrumb(message: string, category?: string, _data?: Record): void; protected doCaptureBreadcrumb(breadcrumb: { message: string; category?: string; level?: string; data?: Record; }): Promise; protected doSetDebugMode(enabled: boolean): void; /** * Add a custom timing */ addTiming(name: string, time?: number): void; /** * Start a view */ startView(name: string, viewContext?: Record): void; /** * Stop a view */ stopView(name: string, viewContext?: Record): void; /** * Start session replay recording */ startSessionReplayRecording(): void; /** * Stop session replay recording */ stopSessionReplayRecording(): void; /** * Get session replay link */ getSessionReplayLink(): string | undefined; /** * Set user property */ setUserProperty(key: string, value: any): void; /** * Remove user property */ removeUserProperty(key: string): void; /** * Clear user */ clearUser(): void; /** * Get global context */ getGlobalContext(): any; /** * Log a message */ protected doLogMessage(message: string, level: 'debug' | 'info' | 'warning', extra?: Record): Promise; } export {};