| /** |
| * Return array of browsers by selection queries. |
| * |
| * ```js |
| * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] |
| * ``` |
| * |
| * @param queries Browser queries. |
| * @returns Array with browser names in Can I Use. |
| */ |
| declare function browserslist( |
| queries?: string | readonly string[] | null, |
| opts?: browserslist.Options |
| ): string[] |
| |
| declare namespace browserslist { |
| interface Options { |
| /** |
| * Path to processed file. It will be used to find config files. |
| */ |
| path?: string | false |
| /** |
| * Processing environment. It will be used to take right queries |
| * from config file. |
| */ |
| env?: string |
| /** |
| * Custom browser usage statistics for "> 1% in my stats" query. |
| */ |
| stats?: Stats | string |
| /** |
| * Path to config file with queries. |
| */ |
| config?: string |
| /** |
| * Do not throw on unknown version in direct query. |
| */ |
| ignoreUnknownVersions?: boolean |
| /** |
| * Throw a error if env is not found. |
| */ |
| throwOnMissing?: boolean |
| /** |
| * Disable security checks for extend query. |
| */ |
| dangerousExtend?: boolean |
| /** |
| * Alias mobile browsers to the desktop version when Can I Use |
| * doesn’t have data about the specified version. |
| */ |
| mobileToDesktop?: boolean |
| } |
| |
| type Config = { |
| defaults: string[] |
| [section: string]: string[] | undefined |
| } |
| |
| interface Stats { |
| [browser: string]: { |
| [version: string]: number |
| } |
| } |
| |
| /** |
| * Browser names aliases. |
| */ |
| let aliases: { |
| [alias: string]: string | undefined |
| } |
| |
| /** |
| * Aliases to work with joined versions like `ios_saf 7.0-7.1`. |
| */ |
| let versionAliases: { |
| [browser: string]: |
| | { |
| [version: string]: string | undefined |
| } |
| | undefined |
| } |
| |
| /** |
| * Can I Use only provides a few versions for some browsers (e.g. `and_chr`). |
| * |
| * Fallback to a similar browser for unknown versions. |
| */ |
| let desktopNames: { |
| [browser: string]: string | undefined |
| } |
| |
| let data: { |
| [browser: string]: |
| | { |
| name: string |
| versions: string[] |
| released: string[] |
| releaseDate: { |
| [version: string]: number | undefined | null |
| } |
| } |
| | undefined |
| } |
| |
| interface Usage { |
| [version: string]: number |
| } |
| |
| let usage: { |
| global?: Usage |
| custom?: Usage | null |
| [country: string]: Usage | undefined | null |
| } |
| |
| let cache: { |
| [feature: string]: { |
| [name: string]: 'y' | 'n' |
| } |
| } |
| |
| /** |
| * Default browsers query |
| */ |
| let defaults: readonly string[] |
| |
| /** |
| * Which statistics should be used. Country code or custom statistics. |
| * Pass `"my stats"` to load statistics from `Browserslist` files. |
| */ |
| type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats } |
| |
| /** |
| * Return browsers market coverage. |
| * |
| * ```js |
| * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 |
| * ``` |
| * |
| * @param browsers Browsers names in Can I Use. |
| * @param stats Which statistics should be used. |
| * @returns Total market coverage for all selected browsers. |
| */ |
| function coverage(browsers: readonly string[], stats?: StatsOptions): number |
| |
| function clearCaches(): void |
| |
| function parseConfig(string: string): Config |
| |
| function readConfig(file: string): Config |
| |
| function findConfig(...pathSegments: string[]): Config | undefined |
| |
| interface LoadConfigOptions { |
| config?: string |
| path?: string |
| env?: string |
| } |
| |
| function loadConfig(options: LoadConfigOptions): string[] | undefined |
| } |
| |
| declare global { |
| namespace NodeJS { |
| interface ProcessEnv { |
| BROWSERSLIST?: string |
| BROWSERSLIST_CONFIG?: string |
| BROWSERSLIST_DANGEROUS_EXTEND?: string |
| BROWSERSLIST_DISABLE_CACHE?: string |
| BROWSERSLIST_ENV?: string |
| BROWSERSLIST_IGNORE_OLD_DATA?: string |
| BROWSERSLIST_STATS?: string |
| } |
| } |
| } |
| |
| export = browserslist |