synthra-client
Version:
A user-friendly Lavalink client designed for NodeJS.
72 lines (71 loc) • 2.66 kB
TypeScript
import { Track } from "./Player";
import { Synthra } from "./Manager";
/**
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
*/
export declare class Queue extends Array<Track> {
/**
* The total duration of the queue in milliseconds.
* This includes the duration of the currently playing track.
*/
get duration(): number;
/**
* The total size of tracks in the queue including the current track.
* This includes the current track if it is not null.
* @returns The total size of tracks in the queue including the current track.
*/
get totalSize(): number;
/**
* The size of tracks in the queue.
* This does not include the currently playing track.
* @returns The size of tracks in the queue.
*/
get size(): number;
/** The current track */
current: Track | null;
/** The previous tracks */
previous: Track[];
/** The Manager instance. */
manager: Synthra;
/** The guild ID property. */
guildId: string;
/**
* Constructs a new Queue.
* @param guildId The guild ID.
* @param manager The Manager instance.
*/
constructor(guildId: string, manager: Synthra);
/**
* Adds a track to the queue.
* @param track The track or tracks to add. Can be a single `Track` or an array of `Track`s.
* @param [offset=null] The position to add the track(s) at. If not provided, the track(s) will be added at the end of the queue.
*/
add(track: Track | Track[], offset?: number): void;
/**
* Removes track(s) from the queue.
* @param startOrPosition If a single number is provided, it will be treated as the position of the track to remove.
* If two numbers are provided, they will be used as the start and end of a range of tracks to remove.
* @param end Optional, end of the range of tracks to remove.
* @returns The removed track(s).
*/
remove(position?: number): Track[];
remove(start: number, end: number): Track[];
/**
* Clears the queue.
* This will remove all tracks from the queue and emit a state update event.
*/
clear(): void;
/**
* Shuffles the queue.
* This will randomize the order of the tracks in the queue and emit a state update event.
*/
shuffle(): void;
/**
* Shuffles the queue to play tracks requested by each user one block at a time.
*/
userBlockShuffle(): void;
/**
* Shuffles the queue to play tracks requested by each user one by one.
*/
roundRobinShuffle(): void;
}