/// import BaseNode, { VoiceServerUpdate, VoiceStateUpdate } from '../base/Node'; import { Track } from './Http'; import { EventEmitter } from 'events'; export declare enum Status { INSTANTIATED = 0, PLAYING = 1, PAUSED = 2, ENDED = 3, ERRORED = 4, STUCK = 5, UNKNOWN = 6 } export declare enum EventType { TRACK_START = "TrackStartEvent", TRACK_END = "TrackEndEvent", TRACK_EXCEPTION = "TrackExceptionEvent", TRACK_STUCK = "TrackStuckEvent", WEBSOCKET_CLOSED = "WebSocketClosedEvent" } export interface PlayerOptions { start?: number; end?: number; noReplace?: boolean; pause?: boolean; } export interface FilterOptions { volume?: number; equalizer?: EqualizerBand[]; karaoke?: KaraokeOptions; timescale?: TimescaleOptions; tremolo?: FrequencyDepthOptions; vibrato?: FrequencyDepthOptions; rotation?: RotationOptions; distortion?: DistortionOptions; channelMix?: ChannelMixOptions; lowPass?: LowPassOptions; } export interface RotationOptions { rotationHz?: number; } export interface DistortionOptions { sinOffset?: number; sinScale?: number; cosOffset?: number; cosScale?: number; tanOffset?: number; tanScale?: number; offset?: number; scale?: number; } export interface ChannelMixOptions { leftToLeft: number; leftToRight: number; rightToLeft: number; rightToRight: number; } export interface LowPassOptions { smoothing: number; } export interface KaraokeOptions { level?: number; monoLevel?: number; filterBand?: number; filterWidth?: number; } export interface TimescaleOptions { speed?: number; pitch?: number; rate?: number; } export interface FrequencyDepthOptions { frequency?: number; depth?: number; } export interface EqualizerBand { band: number; gain: number; } export interface JoinOptions { mute?: boolean; deaf?: boolean; } export default class Player extends EventEmitter { readonly node: T; guildID: string; status: Status; constructor(node: T, guildID: string); get playing(): boolean; get paused(): boolean; get voiceState(): VoiceStateUpdate | undefined; get voiceServer(): VoiceServerUpdate | undefined; moveTo(node: BaseNode): Promise; leave(): Promise; join(channel: string | null, { deaf, mute }?: JoinOptions): Promise; play(track: string | Track, { start, end, noReplace, pause }?: PlayerOptions): Promise; setVolume(vol: number): Promise; setEqualizer(bands: EqualizerBand[]): Promise; setFilters(options: FilterOptions): Promise; seek(position: number): Promise; pause(paused?: boolean): Promise; stop(): Promise; destroy(): Promise; voiceUpdate(sessionId: string, event: VoiceServerUpdate): Promise; send(op: string, d?: object): Promise; }