///
import { EventEmitter } from 'events';
import { Client, Collection, Message, VoiceChannel } from 'discord.js';
import { LyricsData, PlayerOptions as PlayerOptionsType, PlayerProgressbarOptions, PlayerStats, QueueFilters } from './types/types';
import AudioFilters from './utils/AudioFilters';
import { Queue } from './Structures/Queue';
import { Track } from './Structures/Track';
import { ExtractorModel } from './Structures/ExtractorModel';
/**
* The Player class
* @extends {EventEmitter}
*/
export declare class Player extends EventEmitter {
client: Client;
options: PlayerOptionsType;
filters: typeof AudioFilters;
/**
* The collection of queues in this player
* @type {DiscordCollection}
*/
queues: Collection;
/**
* Collection of results collectors
* @type {DiscordCollection>}
* @private
*/
private _resultsCollectors;
/**
* Collection of cooldowns timeout
* @type {DiscordCollection}
* @private
*/
private _cooldownsTimeout;
/**
* The extractor model collection
* @type {DiscordCollection}
*/
Extractors: Collection;
/**
* Creates new Player instance
* @param {DiscordClient} client The discord.js client
* @param {PlayerOptions} options Player options
*/
constructor(client: Client, options?: PlayerOptionsType);
static get AudioFilters(): typeof AudioFilters;
/**
* Define custom extractor in this player
* @param {String} extractorName The extractor name
* @param {any} extractor The extractor itself
* @returns {Player}
*/
use(extractorName: string, extractor: any): Player;
/**
* Remove existing extractor from this player
* @param {String} extractorName The extractor name
* @returns {Boolean}
*/
unuse(extractorName: string): boolean;
/**
* Internal method to search tracks
* @param {DiscordMessage} message The message
* @param {string} query The query
* @param {boolean} [firstResult=false] If it should return the first result
* @returns {Promise