/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { EventEmitter } from 'events';
import http from 'http';
import https from 'https';
import { type DuplexWebSocket } from './duplex.js';
import type { VerifyClientCallbackSync, VerifyClientCallbackAsync, AddressInfo } from 'ws';
export interface ServerOptions {
    key?: string;
    cert?: string;
    server?: http.Server | https.Server;
    verifyClient?: VerifyClientCallbackAsync | VerifyClientCallbackSync;
    onConnection?(connection: DuplexWebSocket): void;
}
export interface WebSocketServer extends EventEmitter {
    listen(addrInfo: {
        port: number;
    } | number): Promise<WebSocketServer>;
    close(): Promise<void>;
    address(): string | AddressInfo | null;
}
export declare function createServer(opts?: ServerOptions): WebSocketServer;
//# sourceMappingURL=server.d.ts.map