///
import webpack from 'webpack';
import { Store } from 'unistore';
import { ExecaChildProcess } from 'execa';
import { Urls } from 'react-dev-utils/WebpackDevServerUtils';
import { ServerProcessWithHMR } from './server-process';
import { WebpackDevServer } from './webpack-dev-server';
import TscProcess from './typescript/tsc-process';
declare type WebpackStatus = {
errors: Array;
warnings: Array;
};
declare type StartUrl = string | Array | null | undefined;
export declare type ProcessState = ({
status: 'compiling';
} & Partial) | ({
status: 'success';
urls?: Urls;
} & Partial) | ({
status: 'errors';
} & Partial) | ({
status: 'warnings';
} & Partial);
export declare type ProcessType = 'DevServer' | 'AppServer' | 'Storybook' | 'TypeScript';
export declare type State = {
[type in ProcessType]?: ProcessState;
};
declare type DevEnvironmentProps = {
webpackDevServer?: WebpackDevServer;
serverProcess?: ServerProcessWithHMR;
multiCompiler?: webpack.MultiCompiler;
appName: string;
suricate: boolean;
storybookProcess?: ExecaChildProcess;
tscProcess?: TscProcess;
startUrl?: StartUrl;
cwd: string;
yoshiServer: boolean;
};
export default class DevEnvironment {
private props;
store: Store;
constructor(props: DevEnvironmentProps);
private onStoryBookMessage;
private onTscMessage;
private triggerBrowserRefresh;
private showErrorsOnBrowser;
private static getSslCertificate;
startWebWorkerHotUpdate(compiler: webpack.Compiler): void;
startServerHotUpdate(compiler: webpack.Compiler): void;
start(): Promise;
static create({ webpackConfigs, serverFilePath, https, webpackDevServerPort, appServerPort, enableClientHotUpdates, cwd, createEjsTemplates, appName, startUrl, suricate, storybook, compileTypeScriptFiles, yoshiServer, inspectArg, }: {
webpackConfigs: [webpack.Configuration?, // Main client config
webpack.Configuration?, // Main server config
webpack.Configuration?, // webworker config
webpack.Configuration?, // webworker config
webpack.Configuration?, // generic config
webpack.Configuration?];
serverFilePath?: string;
https: boolean;
webpackDevServerPort: number;
appServerPort: number;
enableClientHotUpdates: boolean;
cwd?: string;
createEjsTemplates?: boolean;
appName: string;
startUrl?: StartUrl;
suricate?: boolean;
storybook?: boolean;
yoshiServer?: boolean;
compileTypeScriptFiles?: boolean;
inspectArg?: string;
}): Promise;
}
export {};
//# sourceMappingURL=dev-environment.d.ts.map