import ChannelService from '../channelService';
import { FRONTEND_ID, IGroups, IRecords, UID } from '../../..';
export default class Channel {
    private channelService;
    name: string;
    groups: IGroups;
    records: IRecords;
    private userAmount;
    private state;
    constructor(name: string, channelService: ChannelService);
    /**
     * 用户加入channel
     * @param uid
     * @param frontendId
     */
    add(uid: UID, frontendId: FRONTEND_ID): Promise<boolean>;
    /**
     * 退出channel
     * @param uid
     * @param frontendId
     */
    leave(uid: UID, frontendId: FRONTEND_ID): Promise<boolean>;
    getUserAmount(): number;
    /**
     * Get channel members.
     * @return {Array} channel member uid list
     */
    getMembers(): string[];
    /**
     * Get Member info.
     *
     * @param  {String} uid user id
     * @return {Object} member info
     */
    getMember(uid: UID): {
        frontendId: string;
        uid: string;
    };
    /**
     * Remove member by uid
     * @param uid member to removed
     */
    removeMember(uid: UID): Promise<boolean>;
    /**
     * 给当前channel所有用户发消息
     * @param route
     * @param msg
     */
    pushMessage(route: string, msg: any): void;
    destroy(): Promise<void>;
}
