import { Long } from 'bson' ; import { ChatLogged } from '../chat' ; import { ChannelUser } from '../user' ; import { ChannelData } from './channel-info' ; import { ChannelDataUpdater } from './updater' ; /**
 * Store channel data
 */ export interface ChannelDataStore < T , U > extends ChannelData < T > { /**
     * Get total user count
     */ readonly userCount : number ; param user getUserInfo ( user ) : Readonly < U > | undefined ; /**
     * Get user info iterator
     */ getAllUserInfo ( ) : IterableIterator < U > ; param chat getReaders ( chat ) : Readonly < U > [ ] ; param chat getReadCount ( chat ) : number ; } export interface UpdatableChannelDataStore < T , U > extends ChannelDataStore < T , U > , ChannelDataUpdater < T , U > { } export interface ChannelStore < T > { param channelId get ( channelId ) : T | undefined ; /**
     * Iterate every channel list
     */ all ( ) : IterableIterator < T > ; /**
     * Total channel count
     */ readonly size : number ; }