import { Channel } from '@mlytics/core-ts/core/util/future'; import { ProtocolMessage } from '../../../../../protocol/client/utility/message/message'; import { AbstractDaemon, SpecDaemon } from '../../../base/daemon/daemon'; import { AbstractProcessAgent } from '../../../base/daemon/process/flow/agent'; import { SpecConstraintTrackerBroker, TrackerBroker } from '../../broker/broker'; interface SpecTrackerDaemon extends SpecDaemon { broker: SpecConstraintTrackerBroker; } declare abstract class AbstractTrackerDaemon extends AbstractDaemon implements SpecTrackerDaemon { protected _agent: AbstractProcessAgent; protected _broker: TrackerBroker; protected _feedbacks: Channel; get broker(): TrackerBroker; protected _makeURI(): string; feedback(): Promise; protected _buildWaitToStartTask(): Promise; protected _execWaitToStartTaskSentinel(): Promise; protected _buildListenStateEventTask(): Promise; protected _execListenStateEventTaskCallee(): Promise; protected _buildListenConnectingEventTask(): Promise; protected _execListenConnectingEventTaskCallee(): Promise; protected _buildListenConnectedEventTask(): Promise; protected _execListenConnectedEventTaskCallee(): Promise; protected _buildListenDisconnectedEventTask(): Promise; protected _execListenDisconnectedEventTaskCallee(): Promise; protected _buildListenTerminatedEventTask(): Promise; protected _execListenTerminatedEventTaskCallee(): Promise; protected _buildListenSubscribingEventTask(): Promise; protected _execListenSubscribingEventTaskCallee(): Promise; protected _buildListenSubscribedEventTask(): Promise; protected _execListenSubscribedEventTaskCallee(): Promise; protected _buildListenUnsubscribedEventTask(): Promise; protected _execListenUnsubscribedEventTaskCallee(): Promise; protected _buildListenJoinEventTask(): Promise; protected _execListenJoinEventTaskCallee(): Promise; protected _buildListenLeaveEventTask(): Promise; protected _execListenLeaveEventTaskCallee(): Promise; protected _buildListenServerDataEventTask(): Promise; protected _execListenServerDataEventTaskCallee(): Promise; protected _buildListenSpreadDataEventTask(): Promise; protected _execListenSpreadDataEventTaskCallee(): Promise; protected _buildListenMessageEventTask(): Promise; protected _execListenMessageEventTaskCallee(): Promise; protected _buildListenErrorEventTask(): Promise; protected _execListenErrorEventTaskCallee(): Promise; protected _buildDeliverMessageTask(): Promise; protected _execDeliverMessageTaskCallee(): Promise; protected _buildReceiveMessageTask(): Promise; protected _execReceiveMessageTaskCallee(): Promise; protected _buildProcessMessageTask(): Promise; protected _execProcessMessageTaskCallee(): Promise; protected abstract _buildEnablePeerTask(): Promise; protected _buildReportHealthTask(): Promise; protected _execReportHealthTaskCallee(): Promise; protected _buildExitProcessTask(): Promise; protected _execExitProcessTaskOnClose(): Promise; } declare class TrackerDaemonEvent { static readonly FEEDBACK = "feedback"; static readonly CONNECTED = "connected"; static readonly DISCONNECTED = "disconnected"; } declare class TrackerDaemonTaskName { static readonly WAIT_TO_START = "tracker daemon: wait to start"; static readonly LISTEN_STATE_EVENT = "tracker daemon: listen state event"; static readonly LISTEN_CONNECTING_EVENT = "tracker daemon: listen connecting event"; static readonly LISTEN_CONNECTED_EVENT = "tracker daemon: listen connected event"; static readonly LISTEN_DISCONNECTED_EVENT = "tracker daemon: listen disconnected event"; static readonly LISTEN_TERMINATED_EVENT = "tracker daemon: listen terminated event"; static readonly LISTEN_SUBSCRIBING_EVENT = "tracker daemon: listen subscribing event"; static readonly LISTEN_SUBSCRIBED_EVENT = "tracker daemon: listen subscribed event"; static readonly LISTEN_UNSUBSCRIBED_EVENT = "tracker daemon: listen unsubscribed event"; static readonly LISTEN_JOIN_EVENT = "tracker daemon: listen join event"; static readonly LISTEN_LEAVE_EVENT = "tracker daemon: listen leave event"; static readonly LISTEN_SERVER_DATA_EVENT = "tracker daemon: listen server data event"; static readonly LISTEN_SPREAD_DATA_EVENT = "tracker daemon: listen spread data event"; static readonly LISTEN_MESSAGE_EVENT = "tracker daemon: listen message event"; static readonly LISTEN_ERROR_EVENT = "tracker daemon: listen error event"; static readonly DELIVER_MESSAGE = "tracker daemon: deliver message"; static readonly RECEIVE_MESSAGE = "tracker daemon: receive message"; static readonly PROCESS_MESSAGE = "tracker daemon: process message"; static readonly ENABLE_PEER = "tracker daemon: enable peer"; static readonly REPORT_HEALTH = "tracker daemon: report health"; static readonly EXIT_PROCESS = "tracker daemon: exit process"; } type TrackerDaemonFeedback = { content: ProtocolMessage; }; export { SpecTrackerDaemon, AbstractTrackerDaemon, TrackerDaemonEvent, TrackerDaemonTaskName, TrackerDaemonFeedback };