import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { CrpcDialog } from '../model/crpc-dialog'; import { EventName as BrowserEventName } from '../protocol/browser/event-name'; import { StatusMsgMenuChanged } from '../protocol/browser/event/status-msg-menu-changed'; import { CrpcProtocol } from '../protocol/crpc'; import { EventName } from '../protocol/event-name'; import { BusyChanged } from '../protocol/event/busy-changed'; import { StateChanged } from '../protocol/event/state-changed'; import { EventName as PlayerEventName } from '../protocol/player/event-name'; import { StatusMsgChanged } from '../protocol/player/event/status-msg-changed'; export declare enum PropertyUpdateType { VALUE_CHANGE = 0, VALUE_RECEIVE = 1 } export declare abstract class ControlWithPropertiesAbstract { protected _handle: string; protected _instanceName: string; protected _protocol: CrpcProtocol; protected _propertySubjects: { [propertyName: string]: Subject; }; protected _propertyValues: { [propertyName: string]: any; }; protected _propertyUpdateType: { [propertyName: string]: PropertyUpdateType; }; protected _busyTimeout?: any; busy$: BehaviorSubject; dialog$: Subject; protected constructor(_handle: string, _instanceName: string, _protocol: CrpcProtocol); protected abstract _handleEvent(eventName: string, parameters: any): void; getInstanceName(): string; protected _onStateChanged(event: StateChanged): void; protected _onBusyChanged(event?: BusyChanged): void; protected _createPropertySubject(propertyName: string, defaultValue: T, updateType?: PropertyUpdateType, additionalConnectorMethod?: () => void): Observable; protected _updateLocalProperty(propertyName: string, value: any): void; /** * @returns Promise true if success, false if error */ protected _registerEvent(type: EventName | BrowserEventName | PlayerEventName): Promise; protected _getProperty(propertyName: string): Promise; protected _onDialogChanged(event: StatusMsgMenuChanged | StatusMsgChanged): void; }