UNPKG

lavaclient

Version:

A simple, easy-to-use, and flexible lavalink client for node.js

42 lines 1.7 kB
import * as Protocol from "lavalink-protocol"; import * as API from "lavalink-api-client"; import * as WS from "lavalink-ws-client"; import { Client, ClientEvents } from "./client.js"; import { Player } from "./player.js"; import { TypedEmitter } from "tiny-typed-emitter"; import { PlayerManager } from "./players.js"; export declare class Node extends TypedEmitter<NodeEvents> implements Client { readonly options: NodeOptions; readonly players: PlayerManager<this>; readonly rest: API.LavalinkHttpClient; readonly ws: WS.LavalinkWSClient; readonly api: API.LavalinkAPI; userId: string | undefined; constructor(options: NodeOptions); get uptime(): number; connect(options?: WS.LavalinkWSClientConnectOptions): void; disconnect(): void; createPlayer(guildId: string): Player<this>; emit<E extends keyof NodeEvents>(event: E, ...args: Parameters<NodeEvents[E]>): boolean; protected handlePlayerMessage(message: Exclude<Protocol.Message, { op: "ready" | "stats"; }>): void; } type BaseNodeEvents = ClientEvents & Omit<WS.LavalinkWSClientEvents, "debug"> & { request: (event: API.LavalinkHttpClientRequestEvent) => void; }; export interface NodeEvents extends BaseNodeEvents { } type InfoKeys = "host" | "port" | "tls" | "auth"; export interface NodeDiscordOptions { userId?: string; sendGatewayCommand: (guildId: string, data: unknown) => void; } export type NodeOptions = { info: Pick<API.LavalinkHttpClientOptions, InfoKeys>; discord: NodeDiscordOptions; rest?: Omit<API.LavalinkHttpClientOptions, InfoKeys>; ws?: Omit<WS.LavalinkWSClientOptions, "userId">; }; export {}; //# sourceMappingURL=node.d.ts.map