import { ServerOptions } from './types';
import { OptionsBuilder } from './OptionsBuilder';
import { IConfiguration } from './IConfiguration';
export declare abstract class StartupBase {
    /**
     * Constructor initialized options builder
     */
    readonly builder: OptionsBuilder;
    constructor(config: IConfiguration);
    callBeforeStartHooks(): Promise<void>;
    callAfterStartHooks(): Promise<void>;
    /**
     * Executed before  the server is started, use it for Database Connections,
     * and other async processes that are not broker-related
     */
    abstract beforeStart(): Promise<void>;
    /**
     * Executed after the server is started, use to set asynchronous dependencies
     */
    abstract afterStart(): Promise<void>;
    /**
     * Calls the configure server method, to update the builder, and returns the build options
     */
    getServerOptions(): ServerOptions;
    abstract configureServer(builder: OptionsBuilder): void;
}
