UNPKG

lavalink-client

Version:

Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.

170 lines (169 loc) 6.42 kB
import type { Player } from "./Player.js"; import type { AudioOutputs, EQBand, FilterData, PlayerFilters, TimescaleFilter } from "./Types/Filters.js"; /** * The FilterManager for each player */ export declare class FilterManager { /** The Equalizer bands currently applied to the Lavalink Server */ equalizerBands: EQBand[]; /** Private Util for the instaFix Filters option */ filterUpdatedState: boolean; /** All "Active" / "disabled" Player Filters */ filters: PlayerFilters; /** The Filter Data sent to Lavalink, only if the filter is enabled (ofc.) */ data: FilterData; /** The Player assigned to this Filter Manager */ player: Player; /** The Constructor for the FilterManager */ constructor(player: Player); /** * Apply Player filters for lavalink filter sending data, if the filter is enabled / not */ applyPlayerFilters(): Promise<void>; /** * Checks if the filters are correctly stated (active / not-active) * @param oldFilterTimescale * @returns */ checkFiltersState(oldFilterTimescale?: Partial<TimescaleFilter>): boolean; /** * Reset all Filters */ resetFilters(): Promise<PlayerFilters>; /** * Set the Filter Volume * @param volume * @returns */ setVolume(volume: number): Promise<boolean>; /** * Set the AudioOutput Filter * @param type * @returns */ setAudioOutput(type: AudioOutputs): Promise<AudioOutputs>; /** * Set custom filter.timescale#speed . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal * @param speed * @returns */ setSpeed(speed?: number): Promise<boolean>; /** * Set custom filter.timescale#pitch . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal * @param speed * @returns */ setPitch(pitch?: number): Promise<boolean>; /** * Set custom filter.timescale#rate . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal * @param speed * @returns */ setRate(rate?: number): Promise<boolean>; /** * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ toggleRotation(rotationHz?: number): Promise<boolean>; /** * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleVibrato(frequency?: number, depth?: number): Promise<boolean>; /** * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleTremolo(frequency?: number, depth?: number): Promise<boolean>; /** * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ toggleLowPass(smoothing?: number): Promise<boolean>; lavalinkLavaDspxPlugin: { /** * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param boostFactor * @param cutoffFrequency * @returns */ toggleLowPass: (boostFactor?: number, cutoffFrequency?: number) => Promise<boolean>; /** * Enables / Disables the HighPass effect, (Optional: provide your Own Data) * @param boostFactor * @param cutoffFrequency * @returns */ toggleHighPass: (boostFactor?: number, cutoffFrequency?: number) => Promise<boolean>; /** * Enables / Disables the Normalization effect. * @param {number} [maxAmplitude=0.75] - The maximum amplitude of the audio. * @param {boolean} [adaptive=true] - Whether to use adaptive normalization or not. * @returns {Promise<boolean>} - The state of the filter after execution. */ toggleNormalization: (maxAmplitude?: number, adaptive?: boolean) => Promise<boolean>; /** * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param {number} [decay=0.5] - The decay of the echo effect. * @param {number} [echoLength=0.5] - The length of the echo effect. * @returns {Promise<boolean>} - The state of the filter after execution. */ toggleEcho: (decay?: number, echoLength?: number) => Promise<boolean>; }; lavalinkFilterPlugin: { /** * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns */ toggleEcho: (delay?: number, decay?: number) => Promise<boolean>; /** * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns */ toggleReverb: (delays?: number[], gains?: number[]) => Promise<boolean>; }; /** * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate * @returns */ toggleNightcore(speed?: number, pitch?: number, rate?: number): Promise<boolean>; /** * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate * @returns */ toggleVaporwave(speed?: number, pitch?: number, rate?: number): Promise<boolean>; /** * Enable / Disables a Karaoke like Filter Effect * @param level * @param monoLevel * @param filterBand * @param filterWidth * @returns */ toggleKaraoke(level?: number, monoLevel?: number, filterBand?: number, filterWidth?: number): Promise<boolean>; /** Function to find out if currently there is a custom timescamle etc. filter applied */ isCustomFilterActive(): boolean; /** * Sets the players equalizer band on-top of the existing ones. * @param bands */ setEQ(bands: EQBand | EQBand[]): Promise<this>; /** Clears the equalizer bands. */ clearEQ(): Promise<this>; }