import { EventEmitter } from "stream";
import { Client } from "../client";
import { Chunk, RconCommand } from "../enums_types/types";
interface RconEvents {
    rcon_line: (line: string) => void;
    rcon_auth_status: (info: {
        AuthLevel: number;
        ReceiveCommands: number;
    }) => void;
    rcon_cmd_add: (info: {
        command: string;
        description: string;
        params: string;
    }) => void;
    rcon_cmd_rem: (info: {
        command: string;
    }) => void;
}
export declare class Rcon extends EventEmitter {
    on<K extends keyof RconEvents>(event: K, listener: RconEvents[K]): this;
    emit<K extends keyof RconEvents>(event: K, ...args: Parameters<RconEvents[K]>): boolean;
    CommandList: RconCommand[];
    private _client;
    constructor(_client: Client);
    private send;
    auth(username: string, password: string): void;
    auth(password: string): void;
    /** Send rcon command **/
    rcon(cmds: string[] | string): void;
    /** This method is called by the Client to handle the chunks. It should not be called directly. */
    _checkChunks(chunk: Chunk): boolean;
}
export {};
