import { BaseHandler } from './base.handler';
import { ChatSendOptions, ChatListOptions, ChatDeleteOptions, ChatBanOptions, ChatUnbanOptions, ChatKickOptions, ChatUnkickOptions, ChatBannedListOptions, ChatKickedListOptions, ChatServiceConfig, OutputFormat } from '../types/chat';
import { AuthConfig } from '../types/auth';
export declare class ChatHandler extends BaseHandler {
    private readonly chatService;
    constructor(authConfig: AuthConfig, serviceConfig: ChatServiceConfig);
    sendAdminMessage(options: ChatSendOptions): Promise<void>;
    listMessages(options: ChatListOptions): Promise<void>;
    deleteMessage(options: ChatDeleteOptions): Promise<void>;
    getGroupLoginTimes(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    sendHiddenMessage(options: {
        channelId: string;
        userId: string;
        content?: string;
        imgUrl?: string;
        output?: OutputFormat;
    }): Promise<void>;
    sendHiddenByAdmin(options: {
        channelId: string;
        content: string;
        role: string;
        output?: OutputFormat;
    }): Promise<void>;
    countOnlineUser(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    removeChatContents(options: {
        channelId: string;
        ids: string[];
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    listSpeak(options: {
        startTime?: number;
        endTime?: number;
        cursor?: string;
        size?: number;
        output?: OutputFormat;
    }): Promise<void>;
    alertToSpecial(options: {
        channelId: string;
        title: string;
        message: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    auditMessage(options: {
        channelId: string;
        msgId: string;
        viewerId: string;
        nickName: string;
        content: string;
        avatar?: string;
        sessionId?: string;
        viewerType?: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    sendCustomMessage(options: {
        channelId: string;
        content?: string;
        imgUrl?: string;
        joinHistoryList?: boolean;
        watchType?: string;
        important?: boolean;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    sendCustomMessageEncode(options: {
        channelId: string;
        content?: string;
        imgUrl?: string;
        joinHistoryList?: 0 | 1;
        watchType?: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    emitByUserId(options: {
        roomId: string;
        userIds: string[];
        payload: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    listUserBadwords(options: {
        output?: OutputFormat;
    }): Promise<void>;
    addBadwords(options: {
        userId: string;
        words: string[];
        channelId?: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    deleteUserBadword(options: {
        words: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    addBannedIp(options: {
        channelId: string;
        ip: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    listUserBanned(options: {
        page?: number;
        size?: number;
        output?: OutputFormat;
    }): Promise<void>;
    listForbidUsers(options: {
        viewerId?: string;
        nickName?: string;
        pageNumber?: number;
        pageSize?: number;
        output?: OutputFormat;
    }): Promise<void>;
    deleteChannelBanned(options: {
        channelId: string;
        type: 'ip' | 'badword';
        content: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    listBulletins(options: {
        channelId: string;
        pageNumber?: number;
        pageSize?: number;
        sort?: string;
        output?: OutputFormat;
    }): Promise<void>;
    addBulletin(options: {
        channelId: string;
        content: string;
        isTop?: 'Y' | 'N';
        isPop?: 'Y' | 'N';
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    cleanNotices(options: {
        channelId: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    listQa(options: {
        channelId: string;
        pageNumber?: number;
        pageSize?: number;
        output?: OutputFormat;
    }): Promise<void>;
    updateCensorEnabled(options: {
        channelId: string;
        enabled?: 'Y' | 'N';
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    getAdminInfo(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    updateAdminInfo(options: {
        channelId: string;
        nickname: string;
        actor: string;
        avatar: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    getTeacherInfo(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    updateTeacherInfo(options: {
        channelId: string;
        nickname?: string;
        actor?: string;
        passwd?: string;
        avatar?: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    getUserList(options: {
        roomId: string;
        page?: number;
        len?: number;
        toGetSubRooms?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    getRobotSetting(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    getRobotStats(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    updateRobotSetting(options: {
        channelId: string;
        robotNumber: number;
        addRobotModel: 'timely' | 'fixed_time';
        changeTime?: number;
        virtualBookingNumber?: number;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    updateRobotListSetting(options: {
        channelId: string;
        robotNumber: number;
        addRobotModel: 'timely' | 'fixed_time';
        changeTime?: number;
        virtualBookingNumber?: number;
        robotList?: Array<{
            name: string;
            avatar: string;
        }>;
        robotRandomMemberEnabled?: 'Y' | 'N';
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    pauseRobot(options: {
        channelId: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    batchUpdateChatEnabled(options: {
        channelIds: string[];
        chatEnabled: 'Y' | 'N';
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    logoutWatchViewer(options: {
        channelId: string;
        token?: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    private validateRequiredOptions;
    private compactOptions;
    private validateContentOrImage;
    private validateYN;
    private confirmIfNeeded;
    private displayGenericResult;
    private displaySendResult;
    private displayListResult;
    private displayMessagesTable;
    private displayDeleteResult;
    private truncateContent;
    banUser(options: ChatBanOptions): Promise<void>;
    unbanUser(options: ChatUnbanOptions): Promise<void>;
    kickUser(options: ChatKickOptions): Promise<void>;
    unkickUser(options: ChatUnkickOptions): Promise<void>;
    listBanned(options: ChatBannedListOptions): Promise<void>;
    listKicked(options: ChatKickedListOptions): Promise<void>;
    private validateSendOptions;
    private validateListOptions;
    private validateDeleteOptions;
    private validateBanOptions;
    private validateKickOptions;
    private validateBannedListOptions;
    private validateKickedListOptions;
    private displayBanResult;
    private displayUnbanResult;
    private displayKickResult;
    private displayUnkickResult;
    private displayBannedListResult;
    private displayKickedListResult;
}
//# sourceMappingURL=chat.handler.d.ts.map