import { Objex } from "@evolvejs/objex";
import { Track } from "src/interfaces/Track";
import { EvolavaPlayer } from "./EvoLavaPlayer";
import { QueueOptions } from "src/interfaces/QueueOptions";
export declare class Queue extends Objex<number, Track> {
    readonly player: EvolavaPlayer;
    repeatTrack: boolean;
    repeatQueue: boolean;
    skipOnError: boolean;
    constructor(player: EvolavaPlayer, options: QueueOptions);
    get duration(): number;
    get empty(): boolean;
    toggleRepeat(type?: "track" | "queue"): boolean;
    add(data: Track | Track[]): void;
    remove(pos?: number): Track | undefined;
    wipe(start: number, end: number): Track[];
    clearQueue(): void;
    moveTrack(from: number, to: number): void;
}
