lavaclient
Version:
A simple, easy-to-use, and flexible lavalink client for node.js
56 lines • 2.82 kB
TypeScript
import type { Node } from "./node.js";
import * as Protocol from "lavalink-protocol";
import type * as API from "lavalink-api-client";
import type { Cluster } from "./cluster/client.js";
import { ClusterNode } from "./cluster/node.js";
import { PlayerVoice } from "./playerVoice.js";
import { TypedEmitter } from "tiny-typed-emitter";
export declare class Player<$Node extends Node = Node> extends TypedEmitter<PlayerEvents> {
readonly id: string;
readonly voice: PlayerVoice;
api: API.PlayerAPI;
node: $Node;
playing: boolean;
playingTimestamp?: number;
track: Protocol.Track | null;
filters: Protocol.Filters;
position: number;
volume: number;
paused: boolean;
lastUpdate?: number;
constructor(node: $Node, id: string);
get cluster(): $Node extends ClusterNode ? Cluster : Cluster | null;
get adjustedPosition(): number;
play<T>(track: {
encoded: string;
userData: T;
userDataSchema: Protocol.AnySchema<T>;
}, options?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "track" | "voice">): Promise<this>;
play(track: string | {
encoded: string;
userData: Record<string, unknown>;
}, options?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "track" | "voice">): Promise<this>;
stop(other?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "track" | "voice">): Promise<this>;
pause(paused?: boolean, other?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "paused" | "voice">): Promise<this>;
resume(other?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "paused" | "voice">): Promise<this>;
seek(position: number, other?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "position" | "voice">): Promise<this>;
setVolume(volume: number, other?: Omit<Protocol.RESTPatchAPIPlayerJSONBody, "volume" | "voice">): Promise<this>;
setFilters(filters: Protocol.Filters): Promise<this>;
setFilters<K extends keyof Protocol.Filters>(filter: K, value: Protocol.Filters[K]): Promise<this>;
setFilters(filter: string, value: unknown, plugin: true): Promise<this>;
fetch(): Promise<boolean>;
update(body: Protocol.RESTPatchAPIPlayerJSONBody, noReplace?: boolean): Promise<this>;
patch(data: Protocol.Player): this;
patchWithState(data: Protocol.PlayerState): this;
transfer(to: $Node): Promise<void>;
handleEvent(event: Protocol.Event): void;
}
export interface PlayerEvents {
disconnected: (code: number, reason: string, byRemote: boolean) => void;
updated: () => void;
trackStart: (track: Protocol.Track) => void;
trackEnd: (track: Protocol.Track, reason: Protocol.TrackEndReason) => void;
trackException: (track: Protocol.Track, exception: Protocol.Exception) => void;
trackStuck: (track: Protocol.Track, thresholdMs: number) => void;
}
//# sourceMappingURL=player.d.ts.map