|  |  |  |  | /** | 
					
						
							|  |  |  |  |  * Return array of browsers by selection queries. | 
					
						
							|  |  |  |  |  * | 
					
						
							|  |  |  |  |  * ```js
 | 
					
						
							|  |  |  |  |  * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8']
 | 
					
						
							|  |  |  |  |  * ```
 | 
					
						
							|  |  |  |  |  * | 
					
						
							|  |  |  |  |  * @param queries Browser queries. | 
					
						
							|  |  |  |  |  * @param opts Options. | 
					
						
							|  |  |  |  |  * @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 Query { | 
					
						
							|  |  |  |  |     compose: 'or' | 'and' | 
					
						
							|  |  |  |  |     type: string | 
					
						
							|  |  |  |  |     query: string | 
					
						
							|  |  |  |  |     not?: true | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   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 an 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 | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   let nodeVersions: string[] | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   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 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   /** | 
					
						
							|  |  |  |  |    * Get queries AST to analyze the config content. | 
					
						
							|  |  |  |  |    * | 
					
						
							|  |  |  |  |    * @param queries Browser queries. | 
					
						
							|  |  |  |  |    * @param opts Options. | 
					
						
							|  |  |  |  |    * @returns An array of the data of each query in the config. | 
					
						
							|  |  |  |  |    */ | 
					
						
							|  |  |  |  |   function parse( | 
					
						
							|  |  |  |  |     queries?: string | readonly string[] | null, | 
					
						
							|  |  |  |  |     opts?: browserslist.Options | 
					
						
							|  |  |  |  |   ): Query[] | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   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 |