import { EventEmitter } from 'stream'; type Platform = 'wx' | 'xhs'; type IWorkerType = 'web' | 'process' | 'thread'; export interface ICompilerOption { packMode: string; projectPath: string; appMode: string; } export interface ICompilerArgs { logger?: any; type?: string; inspectPort?: number; maxSpaceSaze?: number; nodeJsPath?: string; workerType?: IWorkerType; } export interface ForkWebpackOption { platform: Platform; distDir: string; cacheDirectory: string | null; } export interface ICheckOptions { compilePkgs?: string[]; compressCss?: boolean; compressJs?: boolean; enableV2?: boolean; enableV1?: boolean; entryType?: string; } export declare abstract class AbstractCompiler extends EventEmitter { protected inspectPort: any; protected workerType: IWorkerType; private compilerOpts; protected logger: any; protected _pool: any; constructor(opts: ICompilerOption, args: ICompilerArgs); get pool(): any; set pool(val: any); static prepareDevPool(): void; static createPool(workerType: any, poolOpts?: {}, processArgs?: {}): any; static createProcessOps: (processArgs: any) => any; abstract makePoolReady(args?: any): any; close(): void; kill(): void; call: (method: any, data: any, options?: any) => any; } export declare class MPPackDevCompiler extends AbstractCompiler { private pending; private pendingPkgs; private readyPkgs; private watching; constructor(props: any, args: any); makePoolReady(): void; reset(): void; private doCompilePkgs; private compilePkgsAndWatch; private addPkgsToWatch; changeCompileOptions(options: any): void; makePkgsReady(opts: ICheckOptions): Promise; reCompilePkgs(options: any): Promise; } export declare class WebPackDevCompiler extends AbstractCompiler { private watching; private pendingTask?; constructor(props: any, args: any); makePoolReady(args: any): void; private doCompilePkgs; makePkgsReady(opts: any): Promise; reCompilePkgs(opts: any): Promise; } export declare class BuildCompiler extends AbstractCompiler { cps: any; constructor(props: any, args: any); makePoolReady(args: any): void; build(option: ICheckOptions): Promise; } export declare function getProjectCompilerClass(compilerType: any): typeof MPPackDevCompiler | typeof WebPackDevCompiler | typeof BuildCompiler; export declare const prepareDevPool: typeof AbstractCompiler.prepareDevPool; export {};