declare function generateSessionID(): string; declare enum OperatingSystem { Windows = "Windows", MacOS = "Mac OS", Android = "Android", iOS = "iOS", Linux = "Linux", Unknown = "Unknown", NA = "NA" } declare enum DeviceType { Mobile = "Mobile", Desktop = "Desktop", NA = "NA" } declare enum BrowserName { MicrosoftEdge = "MicrosoftEdge", MicrosoftInternetExplorer = "MicrosoftInternetExplorer", MozillaFirefox = "MozillaFirefox", Opera = "Opera", UCBrowser = "UCBrowser", SamsungBrowser = "SamsungBrowser", GoogleChrome = "GoogleChrome", AppleSafari = "AppleSafari", Instagram = "Instagram", Facebook = "Facebook", DuckDuckGo = "DuckDuckGo", Brave = "Brave", Vivaldi = "Vivaldi", Tor = "Tor", Yandex = "Yandex", Other = "Other", NA = "NA" } type Collectable = T | 'NA'; interface ReferrerData { referrer_url: string | null; referrer_domain: string; referrer_type: string; referrer_source: string; referrer_path: string | null; primary_source: string; source_type: string; search_query: string | null; utm_source: string | null; utm_medium: string | null; utm_campaign: string | null; utm_term: string | null; utm_content: string | null; google_click_id: string | null; facebook_click_id: string | null; referral_code: string | null; is_internal: boolean; is_search_engine: boolean; is_social_media: boolean; has_utm_params: boolean; campaign_info: Record; } interface BrowserInfo { device_type: Collectable; device_hash: Collectable; os_name: Collectable; os_version: Collectable; user_agent: Collectable; platform: Collectable; browser_name: Collectable; browser_version: Collectable; cookie_enabled: Collectable; screen_width: Collectable; screen_height: Collectable; region_timezone: Collectable; region_timezone_offset: Collectable; region_language: Collectable; installed_fonts: Collectable; installed_plugins: Collectable; gpu_renderer: Collectable; cookie_hash: Collectable; cookie_visitor_id: Collectable; browser_hash: Collectable; private_mode: Collectable; battery_percentage: Collectable; user_ip: Collectable; visitor_id: Collectable; session_id: Collectable; architecture: Collectable; internet_type: Collectable; sdk_version: Collectable; installed_bots: Collectable; high_activity: Collectable; tampering_detection: Collectable; private_browser: Collectable; browser_anti_finger_printing_extension: Collectable; virtual_machine_detection?: Collectable; privacy_settings?: Collectable; canvas_device_fingerprint: Collectable; audio_fingerprint: Collectable; flash_or_java_detected: Collectable; web_rtc_ips: Collectable; is_dev_tool_open: Collectable; timezone: Collectable; browser_features: Collectable; http_accept_headers: Collectable; math_tan: Collectable; math_fingerprint: Collectable; pointing_methods: Collectable; storage_support: Collectable; mime_types: Collectable; screen_metrics: Collectable; keyboard_fingerprint: Collectable; accept_encoding_header: Collectable; browser_build_info: Collectable; touch_support: Collectable; color_gamut: Collectable; vendor_flavors: Collectable; contrast_preference: Collectable; motion_reduced: Collectable; monochrome_depth: Collectable; audio_base_latency: Collectable; high_entropy_values: Collectable; connection_info: Collectable; dnt_enabled: Collectable; private_click_measurement: Collectable; transparency_reduced: Collectable; webgl_fingerprint: Collectable; apple_pay_state: Collectable; screen_frame: Collectable; indexed_db: Collectable; css_entropy: Collectable; hardware_concurrency: Collectable; device_memory: Collectable; color_depth: Collectable; pixel_depth: Collectable; languages: Collectable; webgl_supported: Collectable; pointer_support: Collectable; vendor: Collectable; pdf_viewer_enabled: Collectable; pixel_ratio: Collectable; is_desktop: Collectable; is_mobile: Collectable; is_tablet: Collectable; is_windows: Collectable; is_linux: Collectable; is_linux_64: Collectable; is_mac: Collectable; is_ipad: Collectable; is_iphone: Collectable; is_ipod: Collectable; is_smart_tv: Collectable; is_kindle_fire: Collectable; silk_accelerated: Collectable; is_authoritative: Collectable; font_preferences: Collectable; dom_blockers: Collectable; cpu_class: Collectable; os_cpu: Collectable; inverted_colors: Collectable; forced_colors: Collectable; hdr: Collectable; rect_entropy: Collectable; safe_media_entropy: Collectable; performance_metrics?: { data_collection_time: number; cache_hit: boolean; visitor_id_strategy?: string; entropy_evaluation_time?: number; visitor_id_generation_time?: number; cookie_generation_time?: number; }; error_tracking?: { has_errors: boolean; total_errors: number; recent_errors: string[]; failed_collectors: string[]; }; copy_paste_session?: { copy_events: number; paste_events: number; average_paste_length: number; total_paste_characters: number; }; referrer_data?: ReferrerData; } type BrowserDataOptions = { [K in keyof BrowserInfo]?: boolean; }; /** * Options for Device Intelligence SDK loading */ interface LoadOptions { /** * When browser doesn't support `requestIdleCallback` a `setTimeout` will be used. * The value is in milliseconds. * @default 50 */ delayFallback?: number; /** * Whether to print debug messages to the console. */ debug?: boolean; } /** * Options for getting browser data */ interface GetOptions { /** * Timeout for individual data collection tasks * @default FUNCTION_TIME */ taskTimeout?: number; /** * Maximum time to wait for all data collection * @default OVER_ALL_RESOLVE_TIME */ overallTimeout?: number; /** * Configuration options to enable/disable specific collectors */ options?: BrowserDataOptions; /** * Whether to print debug messages to the console. */ debug?: boolean; } /** * Agent object that can get browser data */ interface Agent { /** * Gets comprehensive browser and risk data */ get(options?: Readonly): Promise; /** * Gets encoded browser data */ getEncoded(options?: Readonly): Promise; /** * Generates a session ID */ generateSessionID(): string; /** * Checks if the agent is ready */ isReady(): boolean; } /** * Builds an instance of Agent and waits a delay required for proper operation. */ declare function load(options?: Readonly): Promise; declare const getEncodedBrowserData: (taskTimeout?: number, overallTimeout?: number, options?: BrowserDataOptions) => Promise; declare const isReady: () => boolean; declare const DeviceIntelligence: { load: typeof load; getEncodedBrowserData: (taskTimeout?: number, overallTimeout?: number, options?: BrowserDataOptions) => Promise; generateSessionID: typeof generateSessionID; isReady: () => boolean; }; export { DeviceIntelligence as default, generateSessionID, getEncodedBrowserData, isReady, load }; export type { Agent, BrowserDataOptions, BrowserInfo, GetOptions, LoadOptions };