import { Long } from 'bson'; import { Channel, ChannelStore, LoginData } from '../../channel'; import { TalkSession } from '../client'; import { EventContext, TypedEmitter } from '../../event'; import { InformedOpenLink, OpenChannel, OpenChannelData, OpenChannelManageSession, OpenLink, OpenLinkChannelTemplate, OpenLinkComponent, OpenLinkCreateTemplate, OpenLinkKickedUser, OpenLinkKickedUserInfo, OpenLinkProfiles, OpenLinkProfileTemplate, OpenLinkService, OpenLinkSession, OpenLinkUpdateTemplate } from '../../openlink'; import { AsyncCommandResult, DefaultRes } from '../../request'; import { ChannelListUpdater } from '../channel'; import { OpenChannelListEvents } from '../event'; import { Managed } from '../managed'; import { TalkOpenChannel } from './talk-open-channel'; import { OpenLinkUpdater } from './talk-open-link-handler'; import { OpenChannelUserInfo } from '../../user'; import { ClientDataLoader } from '../../loader'; export declare type TalkOpenChannelListEvents = OpenChannelListEvents; /** * Manage open profile, channel. */ export declare class TalkOpenChannelList extends TypedEmitter implements Managed, OpenChannelManageSession, ChannelStore, OpenLinkSession, ChannelListUpdater, OpenLinkUpdater { private _session; private _loader; private _handler; private _openHandler; private _linkStore; private _manageSession; private _map; constructor(_session: TalkSession, _loader: ClientDataLoader, list: TalkOpenChannel[], clientLinkList: InformedOpenLink[]); get linkService(): OpenLinkService; /** * @param {InformedOpenLink} link * @deprecated */ addClientLink(link: InformedOpenLink): void; /** * @param {Long} linkId * @return {boolean} * @deprecated */ deleteClientLink(linkId: Long): boolean; removeChannel(channel: Channel): boolean; addChannel(channel: Channel): AsyncCommandResult; get(channelId: Long): TalkOpenChannel | undefined; /** * Find open channel using linkId * * @deprecated * @param {Long} linkId * @return {TalkOpenChannel | undefined} */ getChannelByLinkId(linkId: Long): TalkOpenChannel | undefined; /** * Find all open channel using same linkId * * @param {Long} linkId * @return {TalkOpenChannel[]} */ getLinkChannelList(linkId: Long): TalkOpenChannel[]; get size(): number; all(): IterableIterator; /** * @return {IterableIterator} * @deprecated */ allClientLink(): IterableIterator; /** * @param {Long} linkId * @return {InformedOpenLink | undefined} * @deprecated */ getClientLink(linkId: Long): InformedOpenLink | undefined; /** * @deprecated */ get clientLinkCount(): number; addOpenChannel(channel: OpenChannel, lastUpdate?: number): AsyncCommandResult; leaveKicked(channel: OpenChannel): AsyncCommandResult; leaveChannel(channel: Channel): AsyncCommandResult; getLatestLinkList(): AsyncCommandResult[]>; getOpenLink(...components: OpenLinkComponent[]): AsyncCommandResult[]>; getJoinInfo(linkURL: string, referer?: string): AsyncCommandResult>; getKickList(link: OpenLinkComponent): AsyncCommandResult; removeKicked(link: OpenLinkComponent, kickedUser: OpenLinkKickedUser): AsyncCommandResult; deleteLink(link: OpenLinkComponent): AsyncCommandResult; react(link: OpenLinkComponent, flag: boolean): AsyncCommandResult; getReaction(link: OpenLinkComponent): AsyncCommandResult<[number, boolean]>; createOpenChannel(template: OpenLinkChannelTemplate & OpenLinkCreateTemplate, profile: OpenLinkProfiles): AsyncCommandResult; createOpenDirectProfile(template: OpenLinkChannelTemplate & OpenLinkCreateTemplate, profile: OpenLinkProfiles): AsyncCommandResult; createOpenProfile(template: OpenLinkProfileTemplate & OpenLinkCreateTemplate): AsyncCommandResult; updateOpenLink(link: OpenLinkComponent, settings: (OpenLinkChannelTemplate | OpenLinkProfileTemplate) & OpenLinkUpdateTemplate): AsyncCommandResult; pushReceived(method: string, data: DefaultRes, parentCtx: EventContext): Promise; joinChannel(link: OpenLinkComponent, profile: OpenLinkProfiles, passcode?: string): AsyncCommandResult; /** * Initialize TalkChannelList using channelList. * @param {TalkOpenChannelList} talkChannelList * @param {LoginData[]} channelList */ static initialize(talkChannelList: TalkOpenChannelList, channelList?: LoginData[]): Promise; }