import type { Injector } from '@furystack/inject';
import { IncomingMessage } from 'http';
import type WebSocket from 'ws';
import type { Data } from 'ws';
import ws from 'ws';
/**
 * A WebSocket API implementation for FuryStack
 */
export declare class WebSocketApi implements AsyncDisposable {
    readonly socket: import("ws").Server<typeof WebSocket, typeof IncomingMessage>;
    private clients;
    private readonly settings;
    private readonly serverManager;
    private readonly injector;
    private isInitialized;
    init(): Promise<void>;
    [Symbol.asyncDispose](): Promise<void>;
    broadcast(callback: (options: {
        injector: Injector;
        ws: ws;
        message: IncomingMessage;
    }) => void | Promise<void>): Promise<void>;
    execute(data: Data, request: IncomingMessage, injector: Injector, socket: WebSocket): void;
}
//# sourceMappingURL=websocket-api.d.ts.map