/// <reference types="node" />
import type { Server } from 'node:http';
import type { HttpServerFactory } from './HttpServerFactory';
import type { ServerConfigurator } from './ServerConfigurator';
/**
 * Options to be used when creating the server.
 * Due to Components.js not supporting external types, this has been simplified (for now?).
 * The common https keys here (key/cert/pfx) will be interpreted as file paths that need to be read
 * before passing the options to the `createServer` function.
 */
export interface BaseServerFactoryOptions {
    /**
     * If the server should start as an HTTP or HTTPS server.
     */
    https?: boolean;
    key?: string;
    cert?: string;
    pfx?: string;
    passphrase?: string;
}
/**
 * Creates an HTTP(S) server native Node.js `http`/`https` modules.
 *
 * Will apply a {@link ServerConfigurator} to the server,
 * which should be used to attach listeners.
 */
export declare class BaseServerFactory implements HttpServerFactory {
    protected readonly logger: import("..").Logger;
    private readonly configurator;
    private readonly options;
    constructor(configurator: ServerConfigurator, options?: BaseServerFactoryOptions);
    /**
     * Creates an HTTP(S) server.
     */
    createServer(): Promise<Server>;
    private createServerOptions;
}
