/// <reference types="socket.io-client" />
/// <reference types="node" />
import EventEmitter from 'events';
import { Wasd } from '../types/api';
export default class SocketClient extends EventEmitter {
    private jwt;
    private heartbeat;
    socketio: SocketIOClient.Socket;
    private _subs;
    private _originalOn;
    private _originalOff;
    constructor(jwt: Wasd.JWT);
    private connect;
    join(stream_id: number, channel_id: number): void;
    leave(stream_id: number): void;
    sendMessage(stream_id: number, message: string, channel_id: number, streamer_id: number): void;
    sendSticker(stream_id: number, sticker_id: number, channel_id: number, streamer_id: number): void;
    private messageHash;
    private listen;
    on<T extends Wasd.EventMap, V extends keyof Wasd.EventMap>(event: V, listener: (ctx: Pick<T, V>[V]) => void): this;
    off<T extends Wasd.EventMap, V extends keyof Wasd.EventMap>(event: V, listener: (ctx: Pick<T, V>[V]) => void): this;
    private ping;
    private errorHandler;
}
