import * as utils from '../utils'; import * as siProtocol from '../siProtocol'; import { ISiDevice, ISiDeviceDriverData } from '../SiDevice/ISiDevice'; import { ISiStation } from './ISiStation'; import { SiSendTask } from './SiSendTask'; export interface ISiTargetMultiplexer extends utils.IEventTarget { _test: _ISiTargetMultiplexerTestData; stations: { [Target in SiTargetMultiplexerTarget]?: ISiStation; }; target: SiTargetMultiplexerTarget; latestTarget: SiTargetMultiplexerTarget; siDevice: ISiDevice>; sendMessage: (target: SiTargetMultiplexerTarget, message: siProtocol.SiMessage, numResponses?: number, timeoutInMiliseconds?: number) => Promise; sendMessageToLatestTarget: (message: siProtocol.SiMessage, numResponses: number | undefined, timeoutInMiliseconds: number | undefined) => Promise; } export interface _ISiTargetMultiplexerTestData { latestTarget: SiTargetMultiplexerTarget; sendQueue: SiSendTask[]; } export declare enum SiTargetMultiplexerTarget { Unknown = 0, Switching = 1, Direct = 2, Remote = 3 } export declare class SiTargetMultiplexerMessageEvent extends utils.Event<'message'> { siTargetMultiplexer: ISiTargetMultiplexer; message: siProtocol.SiMessage; constructor(siTargetMultiplexer: ISiTargetMultiplexer, message: siProtocol.SiMessage); } export declare class SiTargetMultiplexerDirectMessageEvent extends utils.Event<'directMessage'> { siTargetMultiplexer: ISiTargetMultiplexer; message: siProtocol.SiMessage; constructor(siTargetMultiplexer: ISiTargetMultiplexer, message: siProtocol.SiMessage); } export declare class SiTargetMultiplexerRemoteMessageEvent extends utils.Event<'remoteMessage'> { siTargetMultiplexer: ISiTargetMultiplexer; message: siProtocol.SiMessage; constructor(siTargetMultiplexer: ISiTargetMultiplexer, message: siProtocol.SiMessage); } export type SiTargetMultiplexerEvents = { 'message': SiTargetMultiplexerMessageEvent; 'directMessage': SiTargetMultiplexerDirectMessageEvent; 'remoteMessage': SiTargetMultiplexerRemoteMessageEvent; }; //# sourceMappingURL=ISiTargetMultiplexer.d.ts.map