///
import { ReactiveValue } from '../classes/ReactiveValue.js';
import { EndpointList } from '../classes/EndpointList.js';
import { AnyFn } from '../utils/index.js';
import { GetRemoteUIInternalHandler } from '../types.js';
import { TransportPublisher } from '../publisher/TransportPublisher.js';
export declare type SelfInfo = Pick;
export declare type API = {
connected: ReactiveValue;
send(...args: unknown[]): void;
subscribe(fn: AnyFn): void;
};
interface Socket {
emit(...args: unknown[]): void;
on(event: string, callback: AnyFn): this;
}
export declare class WsTransport {
static get(endpoint: string, socketIO: any): WsTransport;
publishers: string[];
publishersMap: Map;
dataCallbacks: Array<{
endpoint: string | null;
fn: AnyFn;
}>;
connected: ReactiveValue;
ownEndpoints: EndpointList;
remoteEndpoints: EndpointList;
socket: Socket;
sessionId: string;
id: string | null;
sendInfoTimer: number | NodeJS.Timeout | null;
info: SelfInfo;
constructor(uri: string, socketIO: any);
get type(): string;
setClientId(id: string): void;
/**
* Send data through WS
*/
send(name: string, arg: unknown, callback?: AnyFn): void;
/**
* Get self info
*/
getInfo(): SelfInfo;
/**
* Send self info to server
*/
sendInfo(): void;
createApi(publisher: TransportPublisher): API | undefined;
sync(publisher: TransportPublisher): void;
}
export {};