import type * as ws from "ws"; import type * as http from "node:http"; import { Rtt } from "../../tools/pingponger.js"; import { Remote } from "../../core/remote-proxy.js"; import { LoggerTap } from "../../core/taps/logger.js"; import { Fns, HttpMeta, Tap } from "../../core/types.js"; export type Connector = ((connection: Connection) => Promise>); export declare const asConnector: (connector: Connector) => Connector; export type Accepter = ((connection: Connection & HttpMeta) => Promise>); export declare const asAccepter: (accepter: Accepter) => Accepter; export type WsConnectOptions = { socket: WebSocket | ws.WebSocket; connector: Connector; disconnected?: (error?: any) => void; tap?: Tap; timeout?: number; }; export type Connection = { rtt: Rtt; socket: WebSocket | ws.WebSocket; remote: Remote; tap?: Tap; detach: () => void; close: () => void; }; export type Connret = { fns: LocalFns; disconnected: (error?: any) => void; }; export type WsIntegrationOptions = { accepter: Accepter; tap?: LoggerTap; timeout?: number; maxRequestBytes?: number; }; export type WsHandlerOptions = { accepter: Accepter; timeout?: number; tap?: LoggerTap; }; export type WsHandler = (socket: ws.WebSocket, request: http.IncomingMessage) => void;