import { type GatewayVoiceServerUpdateDispatchData, type GatewayVoiceStateUpdateDispatchData } from "discord-api-types/v10"; import type { LinkDaveClient } from "./client.js"; import { PlayerFilters } from "./filters.js"; import type { Node } from "./node.js"; import { Queue } from "./queue.js"; import type { FiltersPayload, MigrateReadyPayload, PlayerUpdatePayload, TrackEndPayload, TrackInfo, TrackStartPayload, VoiceConnectPayload } from "./types.js"; import { PlayerState } from "./types.js"; export interface PlayOptions { startTime?: number; requesterId?: string; filters?: FiltersPayload; } export interface PlayerOptions { voiceChannelId?: string; selfMute?: boolean; selfDeaf?: boolean; inactivityTimeout?: number; } export type RawVoiceStateUpdate = Pick; export type RawVoiceServerUpdate = Pick; export declare class Player { #private; static readonly CONNECT_TIMEOUT = 10000; constructor(client: LinkDaveClient, guildId: string, node: Node, options?: PlayerOptions); get guildId(): string; get voiceChannelId(): string | null; get state(): PlayerState; get current(): TrackInfo | null; get node(): Node; get queue(): Queue; get playing(): boolean; get paused(): boolean; get connecting(): boolean; get connected(): boolean; get filters(): PlayerFilters; connect(channelId?: string, timeoutMs?: number): Promise; disconnect(): void; handleVoiceStateUpdate(data: RawVoiceStateUpdate): Promise; handleVoiceServerUpdate(data: RawVoiceServerUpdate): Promise; play(url: string, options?: PlayOptions, isFromQueue?: boolean): Promise; _onQueueEmpty(): void; pause(): Promise; resume(): Promise; stop(): Promise; seek(position: number): Promise; destroy(): Promise; moveNode(targetNode: Node): Promise; _onPlayerUpdate(data: PlayerUpdatePayload): void; _onTrackStart(data: TrackStartPayload): void; _onTrackEnd(data: TrackEndPayload): void; _onVoiceConnect(): void; _onVoiceDisconnect(): void; _onMigrateReady(data: MigrateReadyPayload): void; }