///
import * as http from 'http';
import { Config as Args, Env } from '../config/argv';
export interface ServerHooks {
onCreateWebpackChain(config: C, dev: boolean, args: Args): void;
onPreCreateApp(app: A): void;
onCreateApp(app: A): void;
onServerListening(server: S): void;
}
export interface BundlerServer {
start(): Promise;
}
export declare type ConfigFn = (hooks: ServerHooks) => Promise;
export declare type BuildFn = (config: C, dist: string, publicDir: string) => void;
export declare type ServerFn = (config: C, hooks: ServerHooks) => BundlerServer | Promise;
export interface BundlerConstructor {
args: Args;
config: ConfigFn;
server: ServerFn;
build: BuildFn;
}
export interface ConfigObj {
[key: string]: any;
}
export declare class Bundler {
private readonly args;
private config;
private server;
private builder;
private hooks;
constructor(params: BundlerConstructor);
mountConfig(env: Env): Promise;
createApp(config: C): Promise;
build(config: C): Promise;
}