import { Config as Args, Env } from './commands/args'; import { BabelRC } from './utils/babel-config'; export interface Server { app: any; on: (event: string, cb: (server: any) => void) => void; close: () => void; } export interface ServerHooks { onCreateApp(app: A): void; OnServerListening(server: S): void; } export interface BundlerServer { start(): Promise; } export declare type ConfigFn = (babelrc: BabelRC) => Promise; export declare type BuildFn = (config: C, dist: string) => void; export declare type ServerFnReturn = BundlerServer | Promise; export declare type ServerFn = (config: C, hooks: ServerHooks) => ServerFnReturn; 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; constructor(params: BundlerConstructor); getConfig(env: Env): Promise; createServer(config: C): Promise; build(config: C): Promise; private mountConfig; private isProd; }