import { Subject } from 'rxjs'; export declare abstract class WebSocketAbstract { onMessage: Subject; onStateChange: Subject; stateChange(): void; constructor(options: any, username: string); abstract readyState: number; abstract connect(options: any, username: string): any; abstract close(): any; abstract send(envelop: WebSocketEnvelop): Promise; } export declare enum WebSocketType { SEND = "send", PUBLISH = "publish" } export declare class WebSocketEnvelop { type: WebSocketType | string; address: string; socialOrgid?: string; body: EnvelopBody | CustomEnvelopBody; } export declare class EnvelopBody { uuid: string; application: string; message: EnvelopMessage; sender: string; alias: string[]; sent: number; channelIds?: string; socialOrgid?: string; categories?: string | string[]; } export declare class EnvelopMessage { sender: string; alert: string; content: string; joins: string; duration: string; channelIds?: string; constructor(sender: string, content: string, joins?: string, duration?: string); } export declare class CustomEnvelopBody { uuid: string; application: string; message: T; sender: string; alias: string[]; sent: number; channelIds?: string; socialOrgid?: string; categories?: string | string[]; }