// Keep the following in sync with packages/browser-rum/src/entries/main.ts import { globalObject } from '@datadog/js-core/util' import { defineGlobal } from '@datadog/browser-core' import type { RumPublicApi } from '@datadog/browser-rum-core' import { makeRumPublicApi } from '@datadog/browser-rum-core' import { makeRecorderApiStub } from '../boot/stubRecorderApi' import { makeProfilerApiStub } from '../boot/stubProfilerApi' export type { User, Account, TraceContextInjection, SessionPersistence, TrackingConsent, MatchOption, Context, ContextValue, ContextArray, RumInternalContext, } from '@datadog/browser-core' export type { ProxyFn, Site } from '@datadog/js-core/transport' /** * @deprecated Use {@link DatadogRum} instead */ export type RumGlobal = RumPublicApi export type { RumPublicApi as DatadogRum, RumInitConfiguration, RumBeforeSend, ViewOptions, StartRecordingOptions, AddDurationVitalOptions, DurationVitalOptions, OperationOptions, FeatureOperationOptions, FailureReason, ActionOptions, ResourceOptions, ResourceStopOptions, TracingOption, RumPlugin, OnRumStartOptions, RumPluginOnInitOptions, PropagatorType, FeatureFlagsForEvents, MatchHeader, // Events CommonProperties, RumEvent, RumActionEvent, RumErrorEvent, RumLongTaskEvent, RumResourceEvent, RumViewEvent, RumVitalEvent, // Events context RumEventDomainContext, RumViewEventDomainContext, RumErrorEventDomainContext, RumActionEventDomainContext, RumVitalEventDomainContext, RumResourceEventDomainContext, RumWebSocketResourceEventDomainContext, RumLongTaskEventDomainContext, } from '@datadog/browser-rum-core' export { DEFAULT_TRACKED_RESOURCE_HEADERS } from '@datadog/browser-rum-core' export { DefaultPrivacyLevel } from '@datadog/browser-core' /** * The global RUM instance. Use this to call RUM methods. * * @category Main * @see {@link DatadogRum} * @see [RUM Browser Monitoring Setup](https://docs.datadoghq.com/real_user_monitoring/browser/) */ export const datadogRum = makeRumPublicApi(makeRecorderApiStub(), makeProfilerApiStub(), { sdkName: 'rum-slim', }) interface BrowserWindow { DD_RUM?: RumPublicApi } defineGlobal(globalObject as BrowserWindow, 'DD_RUM', datadogRum)