import { Channel, ChannelInfo, ChannelStore, UpdatableChannelDataStore } from '../../channel'; import { UpdatableChatListStore } from '../../chat'; import { EventContext, TypedEmitter } from '../../event'; import { ChannelEvents, ChannelListEvent } from '../event'; import { AsyncCommandResult, DefaultRes } from '../../request'; import { ChannelUserInfo } from '../../user'; import { Managed } from '../managed'; declare type TalkChannelHandlerEvents = ChannelEvents; /** * Capture and handle pushes coming to channel */ export declare class TalkChannelHandler implements Managed> { private _channel; private _emitter; private _store; private _chatListStore; constructor(_channel: T, _emitter: TypedEmitter>, _store: UpdatableChannelDataStore, _chatListStore: UpdatableChatListStore); private get info(); private _callEvent; private _msgHandler; private _feedHandler; private _chatReadHandler; private _metaChangeHandler; private _userLeftHandler; private _msgDeleteHandler; pushReceived(method: string, data: DefaultRes, parentCtx: EventContext>): Promise; } /** * Update channel list */ export interface ChannelListUpdater { /** * Add channel * * @param channel */ addChannel(channel: Channel): AsyncCommandResult; /** * Remove channel from managing * * @param channel */ removeChannel(channel: Channel): boolean; } export declare class TalkChannelListHandler implements Managed> { private _list; private _emitter; private _updater; constructor(_list: ChannelStore, _emitter: TypedEmitter>, _updater: ChannelListUpdater); private _callEvent; pushReceived(method: string, data: DefaultRes, parentCtx: EventContext>): Promise; } export {};