import { EventEmitter } from 'eventemitter3';
import { FastifyServerFactoryHandler } from 'fastify';
import { default as uws } from 'uWebSockets.js';
import { kAddress, kApp, kClosed, kHandler, kHttps, kListen, kListenAll, kListenSocket, kListening, kWs } from './symbols';
import { WebSocketServer } from './websocket-server';
interface FastifyUwsOptions {
    connectionTimeout?: number;
    https?: boolean;
}
export declare class Server extends EventEmitter {
    [kHandler]: FastifyServerFactoryHandler;
    timeout?: number;
    [kHttps]?: boolean | Record<string, string>;
    [kWs]?: WebSocketServer | null;
    [kAddress]?: null | any;
    [kListenSocket]?: null | any;
    [kApp]: uws.TemplatedApp;
    [kClosed]?: boolean;
    [kListenAll]?: boolean;
    [kListening]?: boolean;
    constructor(handler: FastifyServerFactoryHandler, opts?: FastifyUwsOptions);
    get encrypted(): boolean;
    get listening(): boolean | undefined;
    setTimeout(timeout: number): void;
    address(): any;
    listen(listenOptions: {
        host: string;
        port: number;
        signal: AbortSignal;
    }, cb: any): void;
    closeIdleConnections(): void;
    close(cb?: () => void): void;
    ref(): void;
    unref(): void;
    [kListen]({ port, host }: {
        port: any;
        host: any;
    }): Promise<unknown>;
}
export {};
