export interface EventSourceType { readonly url: string; readonly readyState: number; onopen: ((this: EventSourceType, ev: Event) => any) | null; onmessage: ((this: EventSourceType, ev: MessageEvent) => any) | null; onerror: ((this: EventSourceType, ev: Event) => any) | null; close(): void; } export interface EventSourceConstructor { OPEN: number; CONNECTING: number; CLOSED: number; new (url: string): EventSourceType; } type Conn = EventSourceType | WebSocket; type OpenEvent = { target: Connection; }; type MessageData = { op: string; [key: string]: any; }; type SendMessageData = { 'client-event-id': string; [key: string]: any; }; type MsgEvent = { target: Connection; message: MessageData | MessageData[]; }; type CloseEvent = { target: Connection; }; interface ErrorEvent { target: Connection; } export type TransportType = 'ws' | 'sse'; export interface Connection { conn: T; type: 'ws' | 'sse'; id: string; close(): void; isOpen(): boolean; isConnecting(): boolean; send(msg: SendMessageData): void; onopen: ((event: OpenEvent) => void) | null; onmessage: ((event: MsgEvent) => void) | null; onclose: ((event: CloseEvent) => void) | null; onerror: ((event: ErrorEvent) => void) | null; } export declare class WSConnection implements Connection { type: TransportType; conn: WebSocket; id: string; onopen: (event: OpenEvent) => void; onmessage: (event: MsgEvent) => void; onclose: (event: CloseEvent) => void; onerror: (event: ErrorEvent) => void; constructor(url: string); close(): void; isOpen(): boolean; isConnecting(): boolean; send(msg: SendMessageData): void; } export declare class SSEConnection implements Connection { type: TransportType; private initParams; private sendQueue; private sendPromise; private closeFired; private sseInitTimeout; private ES; private messageUrl; conn: EventSourceType; url: string; id: string; onopen: (event: OpenEvent) => void; onmessage: (event: MsgEvent) => void; onclose: (event: CloseEvent) => void; onerror: (event: ErrorEvent) => void; constructor(ES: EventSourceConstructor, url: string, messageUrl?: string); private handleMessage; private handleError; private handleClose; private postMessages; private flushQueue; send(msg: SendMessageData): void; isOpen(): boolean; isConnecting(): boolean; close(): void; } export {}; //# sourceMappingURL=Connection.d.ts.map