import { ApiRouter } from "./api-router";
import { Logger } from "./logging/logger";
import { ConfigurationBuilder } from "./configuration/configuration-builder";
import { Application } from 'express';
import { DependencyContainer, ObjectType } from "@miracledevs/paradigm-web-di";
export declare class ApiServer {
    private readonly _controllers;
    private _configurationBuilder;
    private _dependencyContainer;
    private _logger;
    private _expressApplication;
    private _routing;
    get configurationBuilder(): ConfigurationBuilder;
    get expressApplication(): Application;
    get dependencyContainer(): DependencyContainer;
    get routing(): ApiRouter;
    get logger(): Logger;
    get controllers(): ObjectType[];
    constructor();
    setLogger(logger: Logger): void;
    setConfigurationBuilder(configurationBuilder: ConfigurationBuilder): void;
    setDependencyContainer(injector: DependencyContainer): void;
    start(): void;
    protected configureApplication(): void;
    protected registerController(controller: ObjectType): void;
    protected registerControllers(controllers: ObjectType[]): void;
}
