import WebSocket, { WebSocketServer } from 'ws';
import { Socket, Server as SocketServer } from 'net';
import { Logger, LoggerFilter } from './Logger';
import { Service, ServiceOptions } from './Service';
import { Extension } from './Extension';
export type SocketType = Socket | WebSocket;
export type ServerType = SocketServer | WebSocketServer;
export declare class Server {
    private host;
    private port;
    private service;
    private options;
    log: Logger;
    private server;
    private list;
    private extensionsBefore;
    private extensionsAfter;
    private http;
    constructor(host: string, port: number, service: Service, options: ServiceOptions);
    start(): Promise<void>;
    stop(): Promise<void>;
    use(extension: Extension): Promise<void>;
    setFilter(filter: LoggerFilter): Promise<void>;
    clearFilter(): Promise<void>;
    private onConnect;
    private onListening;
    private onError;
    private onClose;
    private onReady;
    private onDisconnect;
    private onException;
    private catchExceptions;
}
