/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import EventEmitter from "events";
import { WebSocket } from "ws";
import { IncomingMessage } from "http";
import { IClose, ServerOptions } from "./interfaces/Options.interface";
import { AuthCallback } from "./types/types";
import { IListenOptions, IRpcServer } from "./interfaces/Server.interface";
import { Socket } from "net";
export declare class RpcServer extends EventEmitter implements IRpcServer {
    private _httpServerAbortControllers;
    private _state;
    private _clients;
    private _pendingUpgrades;
    private _options;
    private _wss;
    private _strictValidators;
    private authCallback?;
    constructor(options: ServerOptions);
    reconfigure(options: ServerOptions): void;
    get handleUpgrade(): (request: IncomingMessage, socket: Socket, head: Buffer) => Promise<void>;
    _onConnection(websocket: WebSocket, request: IncomingMessage): Promise<void>;
    auth(cb: AuthCallback): void;
    listen(port: number, host: string, options: IListenOptions): Promise<import("http").Server<typeof IncomingMessage, typeof import("http").ServerResponse>>;
    close({ code, reason, awaitPending, force }: IClose): Promise<void>;
}
