import GbxRemote from "../gbx/remote.js";
import { TeamColor } from "./Teams.js";
declare enum PlayerStatus {
    Player = "Player",
    Spectator = "Spectator"
}
declare enum SpectatorStatus {
    UserSelectable = 0,
    Spectator = 1,
    Player = 2,
    SpectatorSelectable = 3
}
interface PlayerData {
    isConnected: boolean | null;
    login: string;
    nickname: null | string;
    status: null | PlayerStatus;
    team: null | TeamColor;
}
declare class Player {
    isConnected: boolean;
    login: string;
    nickname: string;
    status: PlayerStatus;
    team: TeamColor;
    get uuid(): string;
    private remote;
    constructor(remote: GbxRemote, data: PlayerData);
    fetch(): Promise<this>;
    forcePlayer(): Promise<boolean>;
    forceSpectator(): Promise<boolean>;
    kick(): Promise<boolean>;
    send(message: string): Promise<boolean>;
    private patch;
}
export default Player;
export { type PlayerData, PlayerStatus, SpectatorStatus };
