import Base from '../../base';
import Application from '../../application';
import ChannelRemote from '../remote/frontend/channelRemote';
import { IBroadcastFilter, IChannels, IChannelServiceOptions, IGroups, IMsgRsp, IStore } from '../..';
import Channel from './channel/channel';
export default class ChannelService extends Base {
    channelRemote: ChannelRemote;
    store: IStore;
    prefix: string;
    channels: IChannels;
    broadcastFilter: IBroadcastFilter;
    constructor(app: Application, opts: IChannelServiceOptions);
    start(): Promise<void>;
    /**
     * 创建channel
     * @param name
     */
    createChannel(name: string): Promise<Channel>;
    getChannel(name: string, create?: boolean): Promise<Channel>;
    destroyChannel(name: string): Promise<void>;
    pushMessageByUids(route: string, msg: any, uids: any): void;
    /**
     * 给某组发消息
     * @param route
     * @param msg
     * @param groups
     */
    sendMessageByGroup(route: string, msg: IMsgRsp, groups: IGroups): void;
    /**
     * 给某个类型服务器广播消息
     * @param serverType
     * @param route
     * @param msg
     */
    broadcast(serverType: string, route: string, msg: IMsgRsp): void;
    /**
     * 本服务器上广播
     * @param route
     * @param msg
     */
    broadcastSelf(route: string, msg: IMsgRsp): void;
    private sendMessage;
    private restoreChannel;
}
