| import Document from './document.js' | |
| import LazyResult from './lazy-result.js' | |
| import NoWorkResult from './no-work-result.js' | |
| import { | |
| AcceptedPlugin, | |
| Plugin, | |
| ProcessOptions, | |
| TransformCallback, | |
| Transformer | |
| } from './postcss.js' | |
| import Result from './result.js' | |
| import Root from './root.js' | |
| declare namespace Processor { | |
| // eslint-disable-next-line @typescript-eslint/no-use-before-define | |
| export { Processor_ as default } | |
| } | |
| /** | |
| * Contains plugins to process CSS. Create one `Processor` instance, | |
| * initialize its plugins, and then use that instance on numerous CSS files. | |
| * | |
| * ```js | |
| * const processor = postcss([autoprefixer, postcssNested]) | |
| * processor.process(css1).then(result => console.log(result.css)) | |
| * processor.process(css2).then(result => console.log(result.css)) | |
| * ``` | |
| */ | |
| declare class Processor_ { | |
| /** | |
| * Plugins added to this processor. | |
| * | |
| * ```js | |
| * const processor = postcss([autoprefixer, postcssNested]) | |
| * processor.plugins.length //=> 2 | |
| * ``` | |
| */ | |
| plugins: (Plugin | TransformCallback | Transformer)[] | |
| /** | |
| * Current PostCSS version. | |
| * | |
| * ```js | |
| * if (result.processor.version.split('.')[0] !== '6') { | |
| * throw new Error('This plugin works only with PostCSS 6') | |
| * } | |
| * ``` | |
| */ | |
| version: string | |
| /** | |
| * @param plugins PostCSS plugins | |
| */ | |
| constructor(plugins?: AcceptedPlugin[]) | |
| /** | |
| * Parses source CSS and returns a `LazyResult` Promise proxy. | |
| * Because some plugins can be asynchronous it doesn’t make | |
| * any transformations. Transformations will be applied | |
| * in the `LazyResult` methods. | |
| * | |
| * ```js | |
| * processor.process(css, { from: 'a.css', to: 'a.out.css' }) | |
| * .then(result => { | |
| * console.log(result.css) | |
| * }) | |
| * ``` | |
| * | |
| * @param css String with input CSS or any object with a `toString()` method, | |
| * like a Buffer. Optionally, send a `Result` instance | |
| * and the processor will take the `Root` from it. | |
| * @param opts Options. | |
| * @return Promise proxy. | |
| */ | |
| process( | |
| css: { toString(): string } | LazyResult | Result | Root | string | |
| ): LazyResult | NoWorkResult | |
| process<RootNode extends Document | Root = Root>( | |
| css: { toString(): string } | LazyResult | Result | Root | string, | |
| options: ProcessOptions<RootNode> | |
| ): LazyResult<RootNode> | |
| /** | |
| * Adds a plugin to be used as a CSS processor. | |
| * | |
| * PostCSS plugin can be in 4 formats: | |
| * * A plugin in `Plugin` format. | |
| * * A plugin creator function with `pluginCreator.postcss = true`. | |
| * PostCSS will call this function without argument to get plugin. | |
| * * A function. PostCSS will pass the function a {@link Root} | |
| * as the first argument and current `Result` instance | |
| * as the second. | |
| * * Another `Processor` instance. PostCSS will copy plugins | |
| * from that instance into this one. | |
| * | |
| * Plugins can also be added by passing them as arguments when creating | |
| * a `postcss` instance (see [`postcss(plugins)`]). | |
| * | |
| * Asynchronous plugins should return a `Promise` instance. | |
| * | |
| * ```js | |
| * const processor = postcss() | |
| * .use(autoprefixer) | |
| * .use(postcssNested) | |
| * ``` | |
| * | |
| * @param plugin PostCSS plugin or `Processor` with plugins. | |
| * @return Current processor to make methods chain. | |
| */ | |
| use(plugin: AcceptedPlugin): this | |
| } | |
| declare class Processor extends Processor_ {} | |
| export = Processor | |