import { ApiServer } from './api/api-server';
import type { ApiServerPort } from './api/port';
import { DatabaseServer } from './database/database-server';
import type { DatabaseConfig } from './database/port';
import { PageServer } from './page/page-server';
import type { PageServerPort } from './page/port';
import { type HttpServerConfig } from './types/server-config';
import type { RestApplicationEntryPoints } from '../../layers/application/types';
interface ServerPageConfig {
    devServerUrl?: string;
    staticDir?: string;
    customRegister?: (server: unknown) => Promise<void> | void;
    apiPrefix?: string;
}
export interface ConfigServer {
    name: string;
    server: HttpServerConfig;
    databases: Array<DatabaseConfig>;
    page?: ServerPageConfig;
    port: number;
    entryPoints?: RestApplicationEntryPoints;
}
export declare class Server {
    private readonly config;
    private readonly apiAdapter;
    private readonly pageAdapter;
    private apiServer?;
    private pageServer?;
    private databaseServer?;
    constructor(config: ConfigServer);
    private createAdapters;
    private initializeServers;
    private configureDatabases;
    registerEntrypoints(entryPoints: RestApplicationEntryPoints): Promise<void>;
    getApiAdapter(): ApiServerPort;
    getPageAdapter(): PageServerPort;
    getApiServer(): ApiServer | undefined;
    getPageServer(): PageServer | undefined;
    getDatabaseServer(): DatabaseServer | undefined;
    start(options?: {
        port?: number;
    }): Promise<void>;
}
export {};
//# sourceMappingURL=server.d.ts.map