/// <reference types="node" />
import { EventEmitter } from 'events';
import { Client } from '../Clients/Client';
declare class ChatService extends EventEmitter {
    private autoReconnect;
    private socket;
    private listener;
    private currentId;
    private client;
    constructor(client: Client);
    join(userid: number, channelid: number, autoReconnect?: boolean): Promise<WebSocket>;
    joinWithAuthKey({ userid, channelid, authKey, endpoints }: {
        userid: any;
        channelid: any;
        authKey: any;
        endpoints: any;
    }): boolean;
    private connectTheChat;
    private ensurePingTimeout;
    private timeout;
    private pingId;
    private ping;
    private hookEventListeners;
    unlisten(channelid: number): void;
    listen(channelid: number): void;
    get connectedChats(): number[];
    chatSocket(id: number): any;
    sendPacket(method: string, args: any[], channelid: number, id?: number): void;
    sendMessage(message: string, channelid?: any): void;
    sendWhisper(message: string, sendToUser: string, channelid?: any): void;
    deleteMessage(messageID: string, channelid?: any): void;
    restoreMessage(messageID: string, channelid?: any): void;
    clearChat(channelid?: any): void;
    timeoutUser(username: string, time: string, channelid?: any): void;
    purgeUser(username: string, channelid?: any): void;
    close(channelid?: any, rejoin?: boolean): void;
}
export default ChatService;
