import { Adapter, AdapterHookable, AdapterInstance, AdapterOptions, Peer, PeerContext, SyncDriver } from "../_chunks/adapter.mjs"; import { WebSocket } from "../_chunks/web.mjs"; import uws from "uWebSockets.js"; declare const StubRequest: { new (url: string, init?: RequestInit): Request; }; type UserData = { peer?: UWSPeer; req: uws.HttpRequest; res: uws.HttpResponse; webReq: UWSReqProxy; protocol: string; extensions: string; context: PeerContext; namespace: string; }; type WebSocketHandler = uws.WebSocketBehavior; interface UWSAdapter extends AdapterInstance { websocket: WebSocketHandler; } interface UWSOptions extends AdapterOptions { uws?: Exclude, "close" | "drain" | "message" | "open" | "ping" | "pong" | "subscription" | "upgrade">; } declare const uwsAdapter: Adapter; declare class UWSPeer extends Peer<{ peers: Set; request: UWSReqProxy; namespace: string; uws: uws.WebSocket; ws: UwsWebSocketProxy; uwsData: UserData; sync?: SyncDriver; hooks: AdapterHookable; }> { get remoteAddress(): string | undefined; get context(): PeerContext; send(data: unknown, options?: { compress?: boolean; }): number; subscribe(topic: string): void; unsubscribe(topic: string): void; _publish(topic: string, message: string, options?: { compress?: boolean; }): number; close(code?: number, reason?: uws.RecognizedString): void; terminate(): void; ping(data?: uws.RecognizedString): number; } declare class UWSReqProxy extends StubRequest { constructor(req: uws.HttpRequest); } declare class UwsWebSocketProxy implements Partial { readyState?: number; private _uws; constructor(_uws: uws.WebSocket); get bufferedAmount(): number; get protocol(): string; get extensions(): string; } export { UWSAdapter, UWSOptions, uwsAdapter as default };