import * as Tools from './platform/tools/index'; import * as Protocol from './protocols/connection/protocol.connection'; import { TAlias } from './provider.aliases'; import { THandler, TQuery } from './provider.processor.demands'; import { ProviderState } from './provider.state'; import { TSender } from './transports/transport.abstract'; import ATransport from './transports/transport.abstract'; import { TClientRequests } from './transports/transport.abstract'; export { Tools, Protocol, ATransport, TClientRequests, THandler, TQuery, ProviderState, TSender, TAlias }; export default class Provider { static Events: { connected: string; disconnected: string; }; private _logger; private _emitter; private _messageEventProcessor; private _messageReconnectionProcessor; private _messageRegistrationProcessor; private _messageSubscribeProcessor; private _messageUnsubscribeProcessor; private _messageUnsubscribeAllProcessor; private _messageRespondentBindProcessor; private _messageRespondentUnbindProcessor; private _messageDemandFromExpectantProcessor; private _messageDemandFromRespondentProcessor; private _state; constructor(transport: ATransport); /** * Subscribe to provider event * @param event {any} event from Provider.Events * @param handler {Function} handler of event * @returns {boolean} */ on(event: any, handler: (...args: any[]) => any): boolean; /** * Unsubscribe from provider event * @param event {any} event from Provider.Events * @param handler {Function} handler of event * @returns {boolean} */ removeListener(event: any, handler: (...args: any[]) => any): boolean; /** * Remove all handlers for Provider.Events event * @param event {any} event from Provider.Events * @returns {void} */ removeAllListeners(event?: any): void; /** * Destroy server * @returns {Promise} - Formatted log-string */ destroy(): Promise; /** * Register as respondent: bind handler with protocol / demand (request) * @param demand {any} reference to demand class * @param query {TQuery} query, which will used for calls to respondent * @param handler {Function} handler to process income request (demand) * @returns { void | Error } */ listenRequest(demand: any, handler: (demand: any, clientId: string, callback: (error: Error | null, results: any) => any) => any, query?: TQuery): void | Error; /** * Unregister as respondent: unbind handler with protocol / demand (request) * @param demand {any} reference to demand class * @returns { void | Error } */ removeRequestListener(demand: any): void | Error; /** * Subscribe handler to event * @param event {any} implementation of event * @param handler {Function} handler * @returns { void | Error } */ subscribe(event: any, handler: (event: any) => any): void | Error; /** * Unsubscribe from event * @param event {any} implementation of event * @param handler {function} listener of event * @returns { void | Error } */ unsubscribe(event: any, handler?: THandler): void | Error; ref(alias: TAlias): Error | void; unref(): void; emit(event: any, aliases?: TAlias, options?: Protocol.Message.Event.Options): Promise; private _onClientMessage; private _onClientConnected; private _onClientDisconnect; private _onClientUpdated; /** * Gets entity's signature * @param protocol {Protocol} implementation of protocol * @returns {string | Error} */ private _getEntitySignature; private _logState; }