// Type definitions for UAParser.js v2.0.4 // Project: https://github.com/faisalman/ua-parser-js // Definitions by: Faisal Salman import type { Headers } from "undici"; import { BrowserType, CPUArch, DeviceType, EngineName } from "../enums/ua-parser-enums"; declare namespace UAParser { interface IData { is(val: string): boolean; toString(): string; withClientHints(): PromiseLike | T; withFeatureCheck(): PromiseLike | T; } interface IBrowser extends IData { name?: string; version?: string; major?: string; type?: typeof BrowserType[keyof typeof BrowserType]; } interface ICPU extends IData { architecture?: typeof CPUArch[keyof typeof CPUArch]; } interface IDevice extends IData { type?: typeof DeviceType[keyof typeof DeviceType]; vendor?: string; model?: string; } interface IEngine extends IData { name?: typeof EngineName[keyof typeof EngineName]; version?: string; } interface IOS extends IData { name?: string; version?: string; } interface IResult extends IData { ua: string; browser: IBrowser; cpu: ICPU; device: IDevice; engine: IEngine; os: IOS; } type RegexMap = ((RegExp | string | (string | RegExp | Function)[])[])[]; type UAParserProps = 'browser' | 'cpu' | 'device' | 'engine' | 'os'; type UAParserExt = Partial> | Partial>[]; export type UAParserHeaders = Record | Headers; export function UAParser(uastring?: string, extensions?: UAParserExt, headers?: UAParserHeaders): IResult; export function UAParser(uastring?: string, headers?: UAParserHeaders): IResult; export function UAParser(extensions?: UAParserExt, headers?: UAParserHeaders): IResult; export function UAParser(headers?: UAParserHeaders): IResult; export class UAParser { static readonly BROWSER: { NAME: 'name'; VERSION: 'version'; MAJOR: 'major'; TYPE: 'type'; }; static readonly CPU: { ARCHITECTURE: 'architecture'; }; static readonly DEVICE: { TYPE: 'type'; VENDOR: 'vendor'; MODEL: 'model'; CONSOLE: 'console'; MOBILE: 'mobile'; SMARTTV: 'smarttv'; TABLET: 'tablet'; WEARABLE: 'wearable'; XR: 'xr'; EMBEDDED: 'embedded'; }; static readonly ENGINE: { NAME: 'name'; VERSION: 'version'; }; static readonly OS: { NAME: 'name'; VERSION: 'version'; }; static readonly VERSION: string; constructor(uastring?: string, extensions?: UAParserExt, headers?: Record); constructor(uastring?: string, headers?: Record); constructor(extensions?: UAParserExt, headers?: Record); constructor(headers?: Record); getUA(): string; getBrowser(): IBrowser; getCPU(): ICPU; getDevice(): IDevice; getEngine(): IEngine; getOS(): IOS; getResult(): IResult; setUA(uastring: string): UAParser; } } export as namespace UAParser; export = UAParser;