import { AuthOptions, RustServer, ServerOptions, LoggerOptions } from "../types";
import { RCEEvents } from "../types";
export default class RCEManager extends RCEEvents {
    private email;
    private password;
    private logger;
    private auth?;
    private tokenRefreshing;
    private servers;
    private socket?;
    private requests;
    private commands;
    private queue;
    private kaInterval?;
    private connectionAttempt;
    constructor(auth: AuthOptions, logger?: LoggerOptions);
    init(timeout?: number): Promise<void>;
    close(): Promise<void>;
    private authenticate;
    private login;
    private refreshToken;
    private logError;
    private clean;
    private connectWebsocket;
    private authenticateWebsocket;
    private fetchServiceState;
    private handleServiceState;
    private handleWebsocketMessage;
    private resolveServerId;
    private markServerAsUnready;
    private markServerAsReady;
    private processQueue;
    private sendCommandInternal;
    sendCommand(identifier: string, command: string, response?: boolean): Promise<string | undefined | null>;
    addServer(opts: ServerOptions): Promise<boolean>;
    private comparePopulation;
    getServer(identifier: string): RustServer;
    removeServer(identifier: string): void;
    getServers(): Map<string, RustServer>;
    private sleep;
}
