import { AnyT, IChannelWrapper, IConnectedWrapper, IDataWrapper, IIpWrapper, IMessagesWrapper, INameWrapper } from '../definitions.interface'; import { IFluxEntity } from './flux-definition.interface'; import { PayloadWrapper } from '../channel/protocol/payload.wrapper'; /** * @entity * @stable [12.06.2020] */ export interface IChannelMessageEntity extends IDataWrapper, IIpWrapper, IMessagesWrapper, INameWrapper { } /** * @flux-entity * @stable [06.11.2020] */ export interface IFluxChannelMessageEntity extends IFluxEntity> { } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelMessageEntity extends IIpWrapper, INameWrapper, IDataWrapper { uuid?: string; } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelEntity extends IMessagesWrapper, IConnectedWrapper { } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelsEntity extends Record { } /** * @redux-holder-entity * @stable [12.06.2020] */ export interface IReduxChannelHolderEntity extends IChannelWrapper { } /** * @service * @stable [06.11.2020] */ export interface IChannelClient { close(): Promise; emit(event: string, ...args: unknown[]): Promise; on(event: string, callback: (...args: AnyT[]) => void): Promise; } /** * @service * @stable [06.11.2020] */ export interface IChannel { connect(ip: string, config?: TConfig): Promise; disconnect(ip: any): Promise; emitChannelEvent(ip: string, ...args: TMessage[]): Promise; emitEvent(ip: string, event: string, ...args: TMessage[]): Promise; emitRequestPayload(ip: string, requestPayload: PayloadWrapper): Promise; hasClient(ip: any): boolean; onConnect(ip: string, client: IChannelClient): void; onDisconnect(ip: string, client: IChannelClient): void; onMessage(ip: string, messageName?: string, payload?: string): void; } /** * @initial-redux-entity * @stable [31.07.2020] */ export declare const INITIAL_REDUX_CHANNELS_ENTITY: Readonly; /** * @stable [06.11.2020] */ export declare const $CHANNEL_RECEIVE_MESSAGE_ACTION_TYPE: string; export declare const $CHANNEL_REPLACE_MESSAGES_ACTION_TYPE: string; export declare const CHANNEL_CONNECT_EVENT = "connect"; export declare const CHANNEL_DISCONNECT_EVENT = "disconnect";