lavaclient
Version:
A simple, easy-to-use, and flexible lavalink client for node.js
44 lines • 2.04 kB
TypeScript
import type { Client, ClientDebugEvent, ClientEvents } from "../client.js";
import * as Protocol from "lavalink-protocol";
import * as API from "lavalink-api-client";
import * as WS from "lavalink-ws-client";
import { TypedEmitter } from "tiny-typed-emitter";
import type { PlayerManager } from "../players.js";
import type { NodeDiscordOptions } from "../node.js";
import { LoadBalancer, LoadBalancerFactory } from "./balancer.js";
import { ClusterNode, ClusterNodeOptions } from "./node.js";
import { ClusterPlayerManagerOptions } from "./players.js";
export declare class Cluster extends TypedEmitter<ClusterEvents> implements Client {
readonly options: ClusterOptions;
readonly nodes: Map<string, ClusterNode>;
readonly balancer: LoadBalancer;
readonly players: PlayerManager;
userId: string | undefined;
private connectedAt;
private readyAt;
constructor(options: ClusterOptions);
get ready(): boolean;
get rest(): API.LavalinkHttpClient;
get api(): API.LavalinkAPI;
get uptime(): number;
connect(options?: WS.LavalinkWSClientConnectOptions): void;
disconnect(): void;
private debug;
}
export interface ClusterEvents extends ClientEvents {
nodeDebug: (node: ClusterNode, event: ClientDebugEvent) => void;
nodeError: (node: ClusterNode, error: Error) => void;
nodeMessage: (node: ClusterNode, message: Protocol.Message) => void;
nodeConnected: (node: ClusterNode, event: WS.LavalinkWSClientConnectedEvent) => void;
nodeDisconnected: (node: ClusterNode, event: WS.LavalinkWSClientDisconnectedEvent) => void;
nodeReconnecting: (node: ClusterNode) => void;
nodeReady: (node: ClusterNode, event: WS.LavalinkWSClientReadyEvent) => void;
nodeRequest: (node: ClusterNode, event: API.LavalinkHttpClientRequestEvent) => void;
}
export interface ClusterOptions {
nodes: ClusterNodeOptions[];
discord: NodeDiscordOptions;
players?: ClusterPlayerManagerOptions;
loadBalancer?: LoadBalancerFactory;
}
//# sourceMappingURL=client.d.ts.map