import { Observable } from "rxjs";
import { BaseMessage } from "../dependencies/fisappmessagejsutilty/dependencies/dependencies";
import { LogSetting, MessageLog } from "../dependencies/fisloggingservice/type/datatype";

type IncomingMessageSetting =  LogSetting & {
    incomingObservable:Observable<BaseMessage>
 }
 
 // Incoming message Service Class
 export interface IncomingMessageServiceInterface  { 
 
     // Set default setting
     init(settings: IncomingMessageSetting ): void;
 }

 //  It can have an incoming and a target logging server. The tags are used to search for specific sets of messages from the logging server. 

export interface MessageSynchronisationServiceSetting {
    incomingSource:LogSetting & {tags:string[] },   
    target:LogSetting & {tags:string[] }
 }
 
 // Acknowledgement Service Class
 export interface MessageSynchronisationServiceInterface{ 
 
     // Set default setting
     init(settings: MessageSynchronisationServiceSetting ): void;
 
     // Subscribe to trigger
     subscribe(obs:Observable<string>): Observable<any>;
 }