import { LogClient } from "@intuitionrobotics/ts-common";
import { HttpErrorHandler, RouteResolver } from "../modules/server/HttpServer";
import { ServerApi } from "../modules/server/server-api";
import { BaseStorm } from "./BaseStorm";
import { Express } from "express";
export declare class Storm extends BaseStorm {
    private routeResolver?;
    private initialPath;
    private functions;
    private apis;
    private express?;
    private logClient;
    private onDestroy?;
    private onStart?;
    errorMessageComposer: HttpErrorHandler;
    constructor();
    setErrorMessageComposer(errorMessageComposer: HttpErrorHandler): this;
    setApp(app: Express): this;
    setLogClient(logClient: LogClient): this;
    getLogClient(): LogClient;
    setOnDestroy(onDestroy?: () => Promise<void>): this;
    setOnStart(onStart?: () => Promise<void>): this;
    static getInstance(): Storm;
    init(): this;
    registerApis(...apis: ServerApi<any>[]): this;
    setInitialRouteResolver(routeResolver: RouteResolver): this;
    setInitialRoutePath(initialPath: string): this;
    build(onStarted?: () => Promise<void>): any;
}
