/// <reference types="node" />
import http from 'http';
import webpack from 'webpack';
import WebpackDevServer from 'webpack-dev-server';
import * as Web from './Web';
export declare const HOST: string;
export declare const DEFAULT_PORT: number;
export declare type DevServer = WebpackDevServer | http.Server;
interface WebpackSettings {
    url: string;
    server: DevServer;
    port: number;
    protocol: 'http' | 'https';
    host?: string;
}
declare type CLIWebOptions = {
    dev?: boolean;
    pwa?: boolean;
    nonInteractive?: boolean;
    port?: number;
    unimodulesOnly?: boolean;
    onWebpackFinished?: (error?: Error) => void;
};
declare type BundlingOptions = {
    dev?: boolean;
    pwa?: boolean;
    isImageEditingEnabled?: boolean;
    isDebugInfoEnabled?: boolean;
    webpackEnv?: Object;
    mode?: 'development' | 'production' | 'test' | 'none';
    https?: boolean;
    nonInteractive?: boolean;
    unimodulesOnly?: boolean;
    onWebpackFinished?: (error?: Error) => void;
};
export declare function restartAsync(projectRoot: string, options?: BundlingOptions): Promise<WebpackSettings | null>;
export declare function printConnectionInstructions(projectRoot: string, options?: {}): void;
export declare function startAsync(projectRoot: string, options?: CLIWebOptions, deprecatedVerbose?: boolean): Promise<WebpackSettings | null>;
export declare function stopAsync(projectRoot: string): Promise<void>;
export declare function openAsync(projectRoot: string, options?: BundlingOptions): Promise<void>;
export declare function compileWebAppAsync(projectRoot: string, compiler: webpack.Compiler): Promise<any>;
export declare function bundleWebAppAsync(projectRoot: string, config: Web.WebpackConfiguration): Promise<void>;
export declare function bundleAsync(projectRoot: string, options?: BundlingOptions): Promise<void>;
export declare function getProjectNameAsync(projectRoot: string): Promise<string>;
export declare function getProjectUseNextJsAsync(projectRoot: string): Promise<boolean>;
export declare function getServer(projectRoot: string): DevServer | null;
export declare function getPort(): number | null;
export declare function getUrlAsync(projectRoot: string): Promise<string | null>;
export declare function getProtocolAsync(projectRoot: string): Promise<'http' | 'https'>;
export declare function getAvailablePortAsync(options?: {
    host?: string;
    defaultPort?: number;
}): Promise<number>;
export declare function setMode(mode: 'development' | 'production' | 'test' | 'none'): void;
export {};