import { type YouTubeVideoID } from '@inner-dj/common'; import type { ClientConfig } from './config.js'; export declare class Player { private downloader; private filesCache; private proc; private config; private sock; private blockedVids; private timeout; private queue; private standbyQueue; private standbyPool; constructor(config: ClientConfig); start: () => Promise; connect: (retryOnFailure?: boolean) => void; play: () => Promise; /** * Add an element to a queue. If the file doesn't already exist, download it first * @param vidurl YouTube video URL * @param destination queue to insert into * @param addToFront true to insert at front, false to insert at end * @param insertFilename true to insert the filename on the drive, false to insert vidurl * @returns false if item was not queued, filename otherwise */ enqueue: (vidurl: string, destination: string[], addToFront: boolean, insertFilename?: boolean) => Promise; skip: () => void; pause: (doPause: boolean) => void; fileExists: (vid: YouTubeVideoID) => Promise; download: (vid: YouTubeVideoID) => Promise; downloadFromServer: (vid: YouTubeVideoID) => Promise; isBlocked: (vid: YouTubeVideoID) => boolean; close: () => void; }