import type { Server } from './net';
import { FlowrLogger } from '../../../util/log';
import type { FlowrConfigOptions, KnownEngines } from '../../../config';
export declare const serverLog: FlowrLogger;
/**
 * This class controls the TCP server, which can be started by calling {@link start}.
 * Afterward, each incoming connection will be greeted with {@link helloClient} and from
 * thereon be handled by a {@link FlowRServerConnection}.
 */
export declare class FlowRServer {
    private readonly server;
    private readonly engines;
    private readonly defaultEngine;
    private versionInformation;
    private readonly allowRSessionAccess;
    private readonly config;
    /** maps names to the respective connection */
    private readonly connections;
    private nameCounter;
    constructor(engines: KnownEngines, defaultEngine: keyof KnownEngines, allowRSessionAccess: boolean, config: FlowrConfigOptions, server?: Server);
    start(port: number): Promise<void>;
    private onConnect;
}
