import type * as API from "lavalink-api-client";
import type * as WS from "lavalink-ws-client";
import type { PlayerManager } from "./players.js";
import type { Player } from "./player.js";
import type { TypedEmitter } from "tiny-typed-emitter";
export interface Client extends TypedEmitter<ClientEvents> {
    readonly players: PlayerManager;
    get uptime(): number;
    get userId(): string | undefined;
    get rest(): API.LavalinkHttpClient;
    get api(): API.LavalinkAPI;
    connect(options?: WS.LavalinkWSClientConnectOptions): void;
    disconnect(): void;
}
export type ClientDebugEvent = {
    message: string;
} & ({
    system: "ws" | "rest";
} | {
    system: "player";
    subsystem: "voice" | "track" | "event";
    player: Player;
});
export interface ClientEvents {
    debug: (event: ClientDebugEvent) => void;
    error: (error: Error) => void;
    ready: (event: {
        took: number;
    }) => void;
}
//# sourceMappingURL=client.d.ts.map