forked from rDrama/rDrama
96 lines
2.4 KiB
TypeScript
96 lines
2.4 KiB
TypeScript
|
import { Plugin } from 'postcss'
|
||
|
import { Stats } from 'browserslist'
|
||
|
|
||
|
declare function autoprefixer<T extends string[]>(
|
||
|
...args: [...T, autoprefixer.Options]
|
||
|
): Plugin & autoprefixer.ExportedAPI
|
||
|
|
||
|
declare function autoprefixer(
|
||
|
browsers: string[],
|
||
|
options?: autoprefixer.Options
|
||
|
): Plugin & autoprefixer.ExportedAPI
|
||
|
|
||
|
declare function autoprefixer(
|
||
|
options?: autoprefixer.Options
|
||
|
): Plugin & autoprefixer.ExportedAPI
|
||
|
|
||
|
declare namespace autoprefixer {
|
||
|
type GridValue = 'autoplace' | 'no-autoplace'
|
||
|
|
||
|
interface Options {
|
||
|
/** environment for `Browserslist` */
|
||
|
env?: string
|
||
|
|
||
|
/** should Autoprefixer use Visual Cascade, if CSS is uncompressed */
|
||
|
cascade?: boolean
|
||
|
|
||
|
/** should Autoprefixer add prefixes. */
|
||
|
add?: boolean
|
||
|
|
||
|
/** should Autoprefixer [remove outdated] prefixes */
|
||
|
remove?: boolean
|
||
|
|
||
|
/** should Autoprefixer add prefixes for @supports parameters. */
|
||
|
supports?: boolean
|
||
|
|
||
|
/** should Autoprefixer add prefixes for flexbox properties */
|
||
|
flexbox?: boolean | 'no-2009'
|
||
|
|
||
|
/** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */
|
||
|
grid?: boolean | GridValue
|
||
|
|
||
|
/** custom usage statistics for > 10% in my stats browsers query */
|
||
|
stats?: Stats
|
||
|
|
||
|
/**
|
||
|
* list of queries for target browsers.
|
||
|
* Try to not use it.
|
||
|
* The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json`
|
||
|
* to share target browsers with Babel, ESLint and Stylelint
|
||
|
*/
|
||
|
overrideBrowserslist?: string | string[]
|
||
|
|
||
|
/** do not raise error on unknown browser version in `Browserslist` config. */
|
||
|
ignoreUnknownVersions?: boolean
|
||
|
}
|
||
|
|
||
|
interface ExportedAPI {
|
||
|
/** Autoprefixer data */
|
||
|
data: {
|
||
|
browsers: { [browser: string]: object | undefined }
|
||
|
prefixes: { [prefixName: string]: object | undefined }
|
||
|
}
|
||
|
|
||
|
/** Autoprefixer default browsers */
|
||
|
defaults: string[]
|
||
|
|
||
|
/** Inspect with default Autoprefixer */
|
||
|
info(options?: { from?: string }): string
|
||
|
|
||
|
options: Options
|
||
|
|
||
|
browsers: string | string[]
|
||
|
}
|
||
|
|
||
|
/** Autoprefixer data */
|
||
|
let data: ExportedAPI['data']
|
||
|
|
||
|
/** Autoprefixer default browsers */
|
||
|
let defaults: ExportedAPI['defaults']
|
||
|
|
||
|
/** Inspect with default Autoprefixer */
|
||
|
let info: ExportedAPI['info']
|
||
|
|
||
|
let postcss: true
|
||
|
}
|
||
|
|
||
|
declare global {
|
||
|
namespace NodeJS {
|
||
|
interface ProcessEnv {
|
||
|
AUTOPREFIXER_GRID?: autoprefixer.GridValue
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export = autoprefixer
|