interface TelemetryConfig { gatewayUrl: string; encryptionKey: [number, number, number, number]; deviceIdLength: number; enableLogging: boolean; telemetry?: boolean; } interface UserAgentBrandVersion { brand: string; version: string; } declare enum BrowserPermissionState { GRANTED = "granted", DENIED = "denied", PROMPT = "prompt" } declare enum PermissionState { GRANTED = 0, DENIED = 1, PROMPT = 2, UNKNOWN = 3 } declare enum BrowserEngineId { WEBKIT = "webkit", BLINK = "blink", GECKO = "gecko", TRIDENT = "trident", EDGE_HTML = "edgehtml", CHROME = "chrome", FIREFOX = "firefox", SAFARI = "safari", EDGE = "edge", OPERA = "opera", BRAVE = "brave", UNKNOWN_BROWSER = "unknown" } declare enum TimeFormatPreferenceId { FORMAT_12 = 12, FORMAT_24 = 24, UNKNOWN = -1, TIME_FORMAT_UNKNOWN = 0, TIME_FORMAT_12H = 1, TIME_FORMAT_24H = 2 } declare enum SpeechApiStatusId { SUPPORTED = 1, NOT_SUPPORTED = 0, UNKNOWN = -1, SPEECH_API_STATUS_NOT_AVAILABLE = 0, SPEECH_API_STATUS_UTTERANCE_MISSING = 1, SPEECH_API_STATUS_AVAILABLE = 2, SPEECH_API_STATUS_ERROR = 3 } interface BaseDimensionsMessage { width?: number; height?: number; } interface DimensionsMessage extends BaseDimensionsMessage { width: number; height: number; } interface TouchCapabilityDetailsMessage { maxTouchPoints: number; touchEvent: boolean; touchStart: boolean; maxPoints?: number; touchApiSupported?: boolean; touchEventSupported?: boolean; } declare enum MediaDeviceAccessLevel { LABELED = "labeled", UNLABELED = "unlabeled", NONE = "none", ERROR = "error", UNSUPPORTED = "unsupported" } declare enum MediaDevicePresence { PRESENT = "present", NOT_PRESENT = "not_present", ERROR = "error", UNSUPPORTED = "unsupported" } declare enum MediaDeviceKind { AUDIO_INPUT = "audioinput", VIDEO_INPUT = "videoinput", AUDIO_OUTPUT = "audiooutput", ERROR = "error", UNKNOWN = "unknown" } interface StandardizedMediaDeviceInfo { id: string; kind: MediaDeviceKind; hasLabel: boolean; groupId?: string; } interface StandardizedMediaAccess { microphone: MediaDeviceAccessLevel; camera: MediaDeviceAccessLevel; speaker: MediaDevicePresence; timestamp: number; } interface ScreenInfo { width?: number; height?: number; availWidth?: number; availHeight?: number; colorDepth?: number; pixelDepth?: number; orientation?: string; pixelRatio?: number; devicePixelRatio?: number; dimensionsObj?: any; availDimensionsObj?: any; screenDpi?: number; } interface WebGLInfo { maxViewportDimsObj?: DimensionsMessage; maxTextureSize?: number; maxTextureImageUnits?: number; maxFragmentUniformVectors?: number; maxVaryingVectors?: number; aliasedPointSizeRangeArr?: { values?: number[]; }; aliasedLineWidthRangeArr?: { values?: number[]; }; unmaskedRenderer?: string; vendor?: string; renderer?: string; fingerprint?: string; webgl2Supported?: boolean; } interface BrowserCapabilityInfo { hasSessionStorage?: number; hasLocalStorage?: number; hasIndexedDB?: number; cookiesEnabled?: boolean; javaEnabled?: boolean; hasWebkitRequestFileSystem?: boolean; hasOpenDatabase?: boolean; hasPromiseAllSettled?: boolean; hasMsSaveBlob?: boolean; } interface NavigatorInfo { userAgent?: string; platform?: string; language?: string; languages?: string[]; cookieEnabled?: boolean; onLine?: boolean; hardwareConcurrency?: number; maxTouchPoints?: number; msDoNotTrack?: string; doNotTrack?: string; oscpu?: string; vendor?: string; vendorSub?: string; productSub?: string; buildID?: string; appCodeName?: string; appName?: string; appVersion?: string; product?: string; cpuClass?: string; hasServiceWorker?: boolean; userAgentData?: { brands?: UserAgentBrandVersion[]; mobile?: boolean; platform?: string; }; } interface BaseMediaDeviceInfoEntry { id: string; kind: string; hasLabel: boolean; } interface MediaDeviceInfoEntry extends BaseMediaDeviceInfoEntry { } interface BaseMediaDevicesInfo { devices?: MediaDeviceInfoEntry[]; microphoneAccess?: string; webcamAccess?: string; speakerAccess?: string; } interface MediaDevicesInfo extends BaseMediaDevicesInfo { standardizedDevices?: StandardizedMediaDeviceInfo[]; standardizedAccess?: StandardizedMediaAccess; } interface NetworkConnection { downlink?: number; effectiveType?: string; rtt?: number; saveData?: boolean; } interface BaseDeviceStorage { quota?: number; usage?: number; } interface DeviceStorage extends BaseDeviceStorage { estimate?: any; } interface WebGPUInfo { vendor?: string; architecture?: string; device?: string; description?: string; status?: number; } interface AutomationInfo { automationToolDetected?: boolean; webdriverChecks?: boolean[]; } interface BaseMobileHeuristics { byTouchEvent?: boolean; deviceOrientationApiDetected?: boolean; specificUserAgentPatternDetected?: boolean; } interface MobileHeuristics extends BaseMobileHeuristics { isMobile?: boolean; isTablet?: boolean; touchCapable?: boolean; screenWidth?: number; screenHeight?: number; } interface BaseSpeechVoiceInfo { name?: string; lang?: string; localService?: boolean; default?: boolean; } interface SpeechVoiceInfo extends BaseSpeechVoiceInfo { voiceURI?: string; } interface BasePermissionStatusInfo { name: string; } interface PermissionStatusInfo extends BasePermissionStatusInfo { state: BrowserPermissionState | PermissionState; } interface TelemetryPayload { fingerprint?: string; userAgent?: string; language?: string; platform?: string; timezoneOffsetMinutes?: number; screenInfo?: ScreenInfo; webglInfo?: WebGLInfo; browserCapabilityInfo?: BrowserCapabilityInfo; navigatorInfo?: NavigatorInfo; mediaDevicesInfo?: MediaDevicesInfo; networkConnection?: NetworkConnection; deviceStorage?: DeviceStorage; webgpuInfo?: WebGPUInfo; automationInfo?: AutomationInfo; audioFingerprint?: string; rectsFingerprint?: number; speechApiFingerprint?: SpeechApiStatusId; fullscreenApiFingerprint?: number; mathFingerprint?: number; evalLengthFingerprint?: number; mobileHeuristics?: MobileHeuristics; storedWebsiteData?: string[]; adBlockerDetected?: boolean; screenResMismatch?: boolean; touchCapabilityDetails?: TouchCapabilityDetailsMessage; maxTouchPoints?: number; installedFonts?: string[]; documentCookie?: string; windowInnerDimensionsObj?: DimensionsMessage; bodyClientDimensionsObj?: DimensionsMessage; browserOnline?: boolean; indexedDbKeys?: string[]; isIframed?: boolean; documentHidden?: boolean; jsErrorSignature?: string; browserEngineSignature?: BrowserEngineId; dateTimeFormatOptions?: string; mediaQueryMatches?: string[]; timeFormatPreference?: TimeFormatPreferenceId; supportedVideoAudioCodecs?: string[]; speechVoices?: SpeechVoiceInfo[]; canvasImageDataBenchmark?: number; zoomLevelHeuristic?: number; batteryStatusIssue?: boolean; permissionStatuses?: PermissionStatusInfo[]; webrtcLeakInfo?: string[]; ontouchstartEventListener?: string; ontouchmoveEventListener?: string; windowObjectKeys?: string[]; navigatorObjectKeys?: string[]; toFixedEngineId?: number; userAgentDataBrands?: UserAgentBrandVersion[]; userAgentDataMobile?: boolean; userAgentDataArchitecture?: string; userAgentDataBitness?: string; userAgentDataModel?: string; userAgentDataPlatformVersion?: string; userAgentDataFullVersionList?: UserAgentBrandVersion[]; userAgentDataWow64?: boolean; endiannessByte?: number; incognitoDetected?: boolean; ipqsDeviceId?: string; } interface FingerprintAnalysisBrowserInfo { name: string; major_version: string; full_version: string; os: string; os_version: string; device: string; user_agent: string; } interface FingerprintAnalysis { fingerprint: string; browser: FingerprintAnalysisBrowserInfo; incognito: boolean; bot_detected: boolean; } interface FingerprintResult { analysis: FingerprintAnalysis; fingerprint: TelemetryPayload; } interface LiteInstance { get(): Promise; } declare function load(customConfig?: Partial): Promise; export { load }; export type { FingerprintAnalysis, FingerprintAnalysisBrowserInfo, FingerprintResult, LiteInstance };