import { Plugin } from '../plugins/Plugin'; import { ClientBuilder } from '../dispatch/Dispatch'; import { EventMetadata } from '../plugins/types'; export type PageIdFormat = 'PATH' | 'HASH' | 'PATH_AND_HASH'; export declare enum PageIdFormatEnum { Path = "PATH", Hash = "HASH", PathAndHash = "PATH_AND_HASH" } export type CookieAttributes = { unique: boolean; domain: string; path: string; sameSite: string; secure: boolean; }; export type PartialCookieAttributes = Partial; export type CompressionStrategy = { enabled: boolean; }; export type Telemetry = string | (string | object)[]; export type UserAgentDetails = { browserName?: string; browserVersion?: string; osName?: string; osVersion?: string; deviceType?: string; }; export interface Config { allowCookies: boolean; releaseId?: string; batchLimit: number; client: string; clientBuilder?: ClientBuilder; compressionStrategy: CompressionStrategy; cookieAttributes: CookieAttributes; sessionAttributes: { [k: string]: string | number | boolean; }; applicationAttributes?: EventMetadata; debug: boolean; disableAutoPageView: boolean; dispatchInterval: number; enableRumClient: boolean; enableXRay: boolean; endpoint: string; endpointUrl: URL; eventCacheSize: number; candidatesCacheSize: number; eventPluginsToLoad: Plugin[]; fetchFunction?: (input: RequestInfo, init?: RequestInit) => Promise; pageIdFormat: PageIdFormat; pagesToExclude: RegExp[]; pagesToInclude: RegExp[]; signing: boolean; recordResourceUrl: boolean; retries: number; routeChangeComplete: number; routeChangeTimeout: number; sessionEventLimit: number; sessionId?: string; sessionLengthSeconds: number; sessionSampleRate: number; suppressSessionStartEvent?: boolean; useBeacon: boolean; userId?: string; userIdRetentionDays: number; alias?: string; headers?: Record; enableW3CTraceId: boolean; } export interface PartialConfig extends Omit, 'cookieAttributes'> { cookieAttributes?: PartialCookieAttributes; } /** * Best-effort UA detection using navigator.userAgentData (Chromium only). * Returns undefined when userAgentData is not available. */ export declare const userAgentDataProvider: () => UserAgentDetails | undefined;