/// <reference types="node" />
import type { Server as NodeHttpServer } from 'http';
import type { Server as NodeHttpsServer } from 'https';
import type { Registry } from './Registry';
import type { ZenConfig } from '../types/interfaces';
export declare class ZenApp {
    /**
     * Inidicates if the application has completly booted.
     */
    isBooted: boolean;
    /**
     * A reference to an initialized {@link Registry}.
     */
    registry: Registry;
    nodeServer: NodeHttpsServer | NodeHttpServer;
    /**
     * This function boots the entire application, prepares the config, Registry and starts the webserver.
     */
    boot(config?: ZenConfig): Promise<void>;
    destroy(): void;
    /**
     * Creates a new webserver, which can be configured inside the config.web property (see {@link config} for more details)
     */
    protected startServer(): Promise<void>;
}
