import type { LuxGlobal } from "./global"; import type { ServerTimingConfig } from "./server-timing"; import type { UrlPatternMapping } from "./url-matcher"; /** * ConfigObject holds the parsed and normalised lux.js configuration. It is initialised once based * on the `LUX` global. */ export interface ConfigObject { allowEmptyPostBeacon: boolean; auto: boolean; beaconUrl: string; beaconUrlFallback?: string; beaconUrlV2: string; conversions?: UrlPatternMapping; cookieDomain?: string; customerid?: string; errorBeaconUrl: string; interactionBeaconDelay: number; jspagelabel?: string; label?: string; maxAttributionEntries: number; maxBeaconUrlLength: number; maxBeaconUTEntries: number; maxErrors: number; maxMeasureTime: number; measureUntil: "onload" | "pagehidden"; minMeasureTime: number; newBeaconOnPageShow: boolean; pagegroups?: UrlPatternMapping; samplerate: number; sendBeaconOnPageHidden: boolean; serverTiming?: ServerTimingConfig; snippetVersion?: LuxGlobal["snippetVersion"]; spaMode: boolean; trackErrors: boolean; trackHiddenPages: boolean; } export type UserConfig = Partial; export declare function fromObject(obj: UserConfig): ConfigObject; export declare function getProperty(obj: T, key: K): Exclude | undefined; export declare function getProperty(obj: T, key: K, defaultValue: D): Exclude | D;