import { Message } from 'discord.js';
import { PlayerLanguage } from './interfaces';
export interface YoutubePlayerOptions {
    messageUpdateRate?: number;
    selfDeleteTime?: number;
    leaveVoiceChannelAfter?: number;
    leaveVoiceChannelAfterAllMembersLeft?: number;
    maxTrackLength?: number;
    autoQueryDetection?: boolean;
    autoPlaylistDetection?: boolean;
    waitTimeBetweenTracks?: number;
    maxItemsInPlayList?: number;
    maxUserItemsInPlayList?: number;
    playlistParseWait?: number;
    multipleParser?: boolean;
    playlistParse?: boolean;
    votePercentage?: number;
    coolDown?: number;
    deleteUserMessage?: boolean;
    hardDeleteUserMessage?: boolean;
    reactionButtons?: boolean;
    suggestReplay?: number;
    language?: PlayerLanguage;
}
export declare class YoutubePlayer {
    /**
     * Constructor that constructs
     * @param {string} string youtube api key
     * @param {PlayerLanguage} PlayerLanguage PlayerLanguage
     */
    constructor(youtubeApiKey?: string, options?: YoutubePlayerOptions);
    /**
     * Should delete user messages?
     * @param {boolean} boolean if set to true if possible the messages sent by user are going to be deleted.
     */
    set deleteUserMessages(trueFalse: boolean);
    /**
     * Should parse playlist links.
     * @param {boolean} boolean.
     */
    set parsePlaylistUrl(trueFalse: boolean);
    /**
     * Should auto detect  playlist link? Requires autoQueryDetection to be enabled.
     * @param {boolean} boolean.
     */
    set autoPlaylistDetection(trueFalse: boolean);
    /**
     * how much this should wait to parse next playlist time
     * @param {number} number seconds
     */
    set playListWaitTime(seconds: number);
    /**
     * Should search if none of the player commands where found in message
     * @param {boolean} boolean Enables/disables autoQuerySearch
     */
    set autoQuerySearch(trueFalse: boolean);
    /**
     * how much items can be in playlist.
     * @param {number} number playlist limit.
     */
    set maxItemsInPlaylist(items: number);
    /**
     * How much track can a user have in playlist
     * @param {number} number user playlist limit
     */
    set maxUsersItemsInPlaylist(items: number);
    /**
     * User command cool down. How much does bot needs to wait before accepting new command
     * @param {number} number time
     */
    set userCoolDown(seconds: number);
    /**
     * Allow multiple videos parsing. This also enables playlist parsing
     * @param {boolean} bool time
     */
    set multipleVideoParser(bool: boolean);
    /**
     * Set wait time between tracks
     * @param {number} number how much should player wait.
     */
    set waitTimeBetweenTracks(seconds: number);
    /**
     * max track length
     * @param {number} number max track length
     */
    set maxTrackLength(seconds: number);
    /**
     * Set player edit/update rate
     * @param {number} number how fast/slow should player message be updated.
     */
    set playerUpdateRate(seconds: number);
    /**
     * When bot runs out of songs how long should wait before disconnecting voice channel
     * @param {number} number in seconds. If set to 0 it will leave immediately.
     */
    set leaveVoiceChannelAfter(seconds: number);
    /**
     * When all uses leave voice channel how long should bot wait before destroying player
     * @param {number} number in seconds. If set to 0 it will leave immediately .
     */
    set leaveVoiceChannelAfterWhenNoPlayersInChannel(seconds: number);
    /**
     * percentage of vote for to be executed
     * @param {number} number vote percentage
     */
    set votePercentage(percentage: number);
    /**
     * Should message be garbage collected
     * @param {number} seconds if 0 no others numbers are seconds
     */
    set selfDelete(seconds: number);
    /**
     * Delete every message in channels when player is active
     * @param {boolean} boolean
     */
    set hardDeleteUserMessages(bool: boolean);
    /**
     * Custom player language pack
     * @param {Language} languePack Custom langue pack
     */
    set defaultLanguage(playerLang: PlayerLanguage);
    /**
     * Create play buttons with that you can control player without use of any other command
     * @param {bool} boolean enable/disable
     */
    set reactionButtons(bool: boolean);
    /**
     * How much before the song should show the replay song button
     * reaction button feature has to be enabled in order for this to work
     * @param {seconds} seconds if 0 the button is not going to show up
     */
    set suggestReplayButtons(seconds: number);
    /**
     * @param {Message} Message Discord message
     * @param {string} String prefix
     * @param {playerLang} PlayerLang object
     * @returns {boolean} It's going to return true if command is valid.
     */
    onMessagePrefix(message: Message, prefix: string, playerLang?: PlayerLanguage): boolean;
    /**
     * Destroys player and makes entire class useless
     * If no call back if provided it going to return Promise;
     * @param {function} callback call function
     */
    destroy(callback?: () => void): Promise<unknown>;
    /**
     * @param {Message} Message Discord message
     * @param {string} String Discord message without prefix
     * @param {string} String Optional just for help command
     * @returns {boolean} It's going to return true if command is valid.
     */
    onMessage(message: Message, messageContentWithOutPrefix: string, prefix?: string, playerLang?: PlayerLanguage): boolean;
}
export declare function getYoutubeTime(timestamp: number): string;
//# sourceMappingURL=YoutubePlayer.d.ts.map