import { Observable, Subject, Subscribable } from "rxjs"; import { AdaptorTransmissionRole, ReceiverProfile, TransmitterProfile } from "./connector.interface"; export interface FisAppActor { incomingMessageBus: Subject outgoingMessageBus: Subject send(message: any): Observable emit(message: any): void emitStream(message: any): void subscribeMessages(messageFilter: any): Observable } export interface MessageTransmissionManager { // what the hell is this here for } export interface MessageTransmissionBase extends FisAppActor, Subscribable { transmitterProfile: TransmitterProfile receiverProfile: ReceiverProfile msgRepositoryService: any transmissionRole: AdaptorTransmissionRole adaptorsArray: any[] transmissionService: any adapterService: any setTransmitter(transmitterProfile: TransmitterProfile): void setReceiver(receiverProfile: ReceiverProfile): void } export interface MessageReceiver extends MessageTransmissionBase { } export interface MessageTransmitter extends MessageTransmissionBase { } export interface MessageRequestResponse extends MessageTransmissionBase, MessageReceiver { } export interface FisMessage { header: { messageID: string, messageName: `NotificationMessage` | `ResponseMessage` | `RequestMessage` }, data: any } export interface TransmisionMessage { transmitter?: TransmitterProfile, receiver?: ReceiverProfile, payload?: FisMessage }