import { ArenaConfiguration as Config, ArenaSDK, AvailableLobby } from "./types";
import { Lobby } from "./Lobby";
import { LobbyP2P } from "./LobbyP2P";
import * as Colyseus from "colyseus.js";
export declare class Arena implements ArenaSDK {
    private static booted;
    private static debugMode;
    protected colyseus: Colyseus.Client | null;
    private readonly game;
    private readonly token;
    constructor(game: Function | string, token: Function | string, debug?: Function | boolean);
    private connection;
    createLobby(options: Pick<Config, 'room' | 'password' | 'team' | 'name' | 'p2p'>): Promise<Lobby>;
    duel(room: string): Promise<LobbyP2P>;
    getLobby(): Promise<Lobby>;
    getLobbyP2P(): Promise<LobbyP2P>;
    joinLobby(options: Pick<Config, 'lobby' | 'room' | 'password' | 'team'>): Promise<Lobby>;
    lobbies(roomId: string): Promise<Array<AvailableLobby>>;
    static log(message: string, level?: 'log' | 'warn' | 'error'): void;
    p2p(id?: string | unknown): Promise<LobbyP2P>;
    static tld(): string;
}
