///
///
import type { Writable } from 'stream';
import type { Matcher } from 'anymatch';
import type { AwaitWriteFinishOptions, WatchOptions } from 'chokidar';
import type { AcceptedPlugin, ProcessOptions, SourceMapOptions } from 'postcss';
import type { PluginOptions } from '../postcssPlugin/types';
export interface SessionOptions {
include?: Array | string;
exclude?: Matcher;
extensions?: Array;
helper?: string;
ext?: string;
css?: string;
watch?: boolean;
chokidar?: WatchOptions;
postcssPlugins?: Array;
postcssOptions?: ProcessOptions;
esifycssPluginParameter?: PluginOptions;
stdout?: Writable;
stderr?: Writable;
}
export interface ReadonlyWatchOptions extends Readonly {
awaitWriteFinish?: Readonly | boolean;
}
export interface SessionOutput {
type: 'css' | 'script';
path: string;
}
export interface SessionConfiguration {
readonly watch: boolean;
readonly output: SessionOutput;
readonly ext: string;
readonly path: ReadonlyArray;
readonly chokidar: ReadonlyWatchOptions;
readonly stdout: Writable;
readonly stderr: Writable;
readonly postcssPlugins: Array;
readonly postcssOptions: ProcessOptions;
readonly cssKey: string;
}
export interface CSSParserParameters {
file: string;
css?: Buffer | string;
options?: ProcessOptions;
plugins: Array;
map?: SourceMapOptions;
}
export interface CSSParserConfigurations {
readonly css: string;
readonly plugins: Array;
readonly options: {
readonly from: string;
readonly map: SourceMapOptions;
};
}