import { Subscription } from 'rxjs'; import { AbmWsService } from '../services/abm-ws.service'; export declare abstract class HasWebSocket { protected funcActionMap: Map; protected sender: string; protected wsSub: Subscription; protected _wsService: AbmWsService; protected abstract _subscribeWs(): void; protected abstract _unsubscribeWs(): void; } export declare function WsSender {}>(sender: string, actionFunctions: { actionName: string; function: string; }[]): (constructor: T) => any; export declare function WsSubscribe(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor; export declare function WsUnsubscribe(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor; export declare type WsSenderFunction = (e: any, send: boolean, ...args: any[]) => boolean; export declare function WsSendFirst(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; export declare function WsSendLast(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor;