magmastream 2.10.3-dev.2 → 2.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import type { User as SeyfertUser, ClientUser as SeyfertClientUser, Message as S
6
6
  import { JsonQueue } from "../statestorage/JsonQueue";
7
7
  import { MemoryQueue } from "../statestorage/MemoryQueue";
8
8
  import { RedisQueue } from "../statestorage/RedisQueue";
9
- import { AutoPlayPlatform, LoadTypes, ManagerEventTypes, PlayerStateEventTypes, SearchPlatform, SeverityTypes, StateStorageType, TrackEndReasonTypes, TrackPartial, TrackSourceTypes, UseNodeOptions } from "./Enums";
9
+ import { AutoPlayPlatform, LoadTypes, ManagerEventTypes, NodeLinkRecommendationPlatform, NodeLinkSearchPlatform, NodeLinkSearchType, PlayerStateEventTypes, SearchPlatform, SeverityTypes, StateStorageType, TrackEndReasonTypes, TrackPartial, TrackSourceTypes, UseNodeOptions } from "./Enums";
10
10
  import { Node } from "./Node";
11
11
  import { Player } from "./Player";
12
12
  import { Plugin } from "./Plugin";
@@ -51,7 +51,7 @@ export interface ManagerOptions {
51
51
  * Use enum `SearchPlatform`.
52
52
  * @default SearchPlatform.YouTube
53
53
  */
54
- defaultSearchPlatform?: SearchPlatform;
54
+ defaultSearchPlatform?: SearchSource;
55
55
  /** The last.fm API key.
56
56
  * If you need to create one go here: https://www.last.fm/api/account/create.
57
57
  * If you already have one, get it from here: https://www.last.fm/api/accounts. */
@@ -388,13 +388,13 @@ export interface Track {
388
388
  /** The duration of the track. */
389
389
  readonly duration: number;
390
390
  /** The ISRC of the track. */
391
- readonly isrc: string;
391
+ readonly isrc: string | null;
392
392
  /** If the track is seekable. */
393
393
  readonly isSeekable: boolean;
394
394
  /** If the track is a stream.. */
395
395
  readonly isStream: boolean;
396
396
  /** The uri of the track. */
397
- readonly uri: string;
397
+ readonly uri: string | null;
398
398
  /** The thumbnail of the track or null if it's a unsupported source. */
399
399
  readonly thumbnail: string | null;
400
400
  /** The user that requested the track. */
@@ -412,6 +412,7 @@ export interface Track {
412
412
  * Track Plugin Info
413
413
  */
414
414
  export interface TrackPluginInfo {
415
+ [key: string]: unknown;
415
416
  albumName?: string;
416
417
  albumUrl?: string;
417
418
  artistArtworkUrl?: string;
@@ -424,16 +425,26 @@ export interface TrackPluginInfo {
424
425
  */
425
426
  export interface SearchQuery {
426
427
  /** The source to search from. */
427
- source?: SearchPlatform;
428
+ source?: SearchSource;
429
+ /**
430
+ * NodeLink search type modifier.
431
+ *
432
+ * Builds identifiers like `ytsearch:playlist:query` and routes the search to a NodeLink node.
433
+ */
434
+ searchType?: NodeLinkSearchType | string;
428
435
  /** The query to search for. */
429
436
  query: string;
430
437
  }
438
+ /**
439
+ * Search source.
440
+ */
441
+ export type SearchSource = SearchPlatform | NodeLinkSearchPlatform | NodeLinkRecommendationPlatform;
431
442
  /**
432
443
  * Lavalink Response
433
444
  */
434
445
  export interface LavalinkResponse {
435
446
  loadType: LoadTypes;
436
- data: TrackData[] | PlaylistRawData;
447
+ data: LavalinkLoadResultData;
437
448
  }
438
449
  /**
439
450
  * Track Data
@@ -444,7 +455,9 @@ export interface TrackData {
444
455
  /** The detailed information of the track. */
445
456
  info: TrackDataInfo;
446
457
  /** Additional track info provided by plugins. */
447
- pluginInfo: Record<string, string>;
458
+ pluginInfo: Record<string, unknown>;
459
+ /** Additional track data sent back from Lavalink. */
460
+ userData?: Record<string, unknown>;
448
461
  }
449
462
  /**
450
463
  * Playlist Raw Data
@@ -453,12 +466,15 @@ export interface PlaylistRawData {
453
466
  info: {
454
467
  /** The playlist name. */
455
468
  name: string;
469
+ /** The selected track index, or -1 if none is selected. */
470
+ selectedTrack: number;
456
471
  };
457
472
  /** Addition info provided by plugins. */
458
- pluginInfo: object;
473
+ pluginInfo: Record<string, unknown>;
459
474
  /** The tracks of the playlist */
460
475
  tracks: TrackData[];
461
476
  }
477
+ export type LavalinkLoadResultData = TrackData | TrackData[] | PlaylistRawData | Exception | null;
462
478
  /**
463
479
  * Track Data Info
464
480
  */
@@ -467,19 +483,20 @@ export interface TrackDataInfo {
467
483
  isSeekable: boolean;
468
484
  author: string;
469
485
  length: number;
470
- isrc?: string;
486
+ position: number;
487
+ isrc: string | null;
471
488
  isStream: boolean;
472
489
  title: string;
473
- uri?: string;
474
- artworkUrl?: string;
475
- sourceName?: TrackSourceName;
490
+ uri: string | null;
491
+ artworkUrl: string | null;
492
+ sourceName: TrackSourceName;
476
493
  }
477
494
  /**
478
495
  * LavaPlayer
479
496
  */
480
497
  export interface LavaPlayer {
481
498
  guildId: string;
482
- track: TrackData;
499
+ track: TrackData | null;
483
500
  volume: number;
484
501
  paused: boolean;
485
502
  state: {
@@ -489,7 +506,11 @@ export interface LavaPlayer {
489
506
  ping: number;
490
507
  };
491
508
  voice: LavalinkVoiceStateResponse;
492
- filters: Record<string, unknown>;
509
+ filters: LavalinkFilters;
510
+ /** NodeLink playback fading configuration. */
511
+ fading?: NodeLinkFadingConfig;
512
+ /** NodeLink loudness normalizer state. */
513
+ loudnessNormalizer?: boolean;
493
514
  }
494
515
  /**
495
516
  * Error or Empty Search Result
@@ -509,6 +530,15 @@ export interface TrackSearchResult {
509
530
  /** The track obtained */
510
531
  tracks: [Track];
511
532
  }
533
+ /**
534
+ * Episode Search Result
535
+ */
536
+ export interface EpisodeSearchResult {
537
+ /** The load type is always 'episode' */
538
+ loadType: LoadTypes.Episode;
539
+ /** The episode obtained */
540
+ tracks: [Track];
541
+ }
512
542
  /**
513
543
  * Search Result
514
544
  */
@@ -584,8 +614,10 @@ export interface PlaylistData {
584
614
  name: string;
585
615
  /** Requester of playlist. */
586
616
  requester: AnyUser;
587
- /** More playlist information. */
588
- playlistInfo: PlaylistInfoData[];
617
+ /** Lavalink playlist information. */
618
+ playlistInfo: PlaylistInfoData;
619
+ /** Additional playlist information provided by plugins. */
620
+ pluginInfo: PlaylistPluginInfo;
589
621
  /** The length of the playlist. */
590
622
  duration: number;
591
623
  /** The songs of the playlist. */
@@ -595,27 +627,28 @@ export interface PlaylistData {
595
627
  * Playlist Info Data
596
628
  */
597
629
  export interface PlaylistInfoData {
598
- /** Url to playlist. */
599
- url: string;
600
- /** Type is always playlist in that case. */
601
- type: string;
602
- /** ArtworkUrl of playlist */
603
- artworkUrl: string;
604
- /** Number of total tracks in playlist */
605
- totalTracks: number;
606
- /** Author of playlist */
607
- author: string;
630
+ /** The playlist name. */
631
+ name: string;
632
+ /** The selected track index, or -1 if none is selected. */
633
+ selectedTrack: number;
634
+ }
635
+ export interface PlaylistPluginInfo extends Record<string, unknown> {
636
+ url?: string;
637
+ type?: string;
638
+ artworkUrl?: string;
639
+ totalTracks?: number;
640
+ author?: string;
608
641
  }
609
642
  /**
610
643
  * Manager Events
611
644
  */
612
645
  export interface ManagerEvents {
613
- [ManagerEventTypes.ChapterStarted]: [player: Player, track: Track, payload: SponsorBlockChapterStarted];
614
- [ManagerEventTypes.ChaptersLoaded]: [player: Player, track: Track, payload: SponsorBlockChaptersLoaded];
646
+ [ManagerEventTypes.ChapterStarted]: [player: Player, track: Track | null, payload: SponsorBlockChapterStarted];
647
+ [ManagerEventTypes.ChaptersLoaded]: [player: Player, track: Track | null, payload: SponsorBlockChaptersLoaded];
615
648
  [ManagerEventTypes.Debug]: [info: string];
616
- [ManagerEventTypes.LyricsFound]: [player: Player, track: Track, payload: LyricsFoundEvent];
617
- [ManagerEventTypes.LyricsLine]: [player: Player, track: Track, payload: LyricsLineEvent];
618
- [ManagerEventTypes.LyricsNotFound]: [player: Player, track: Track, payload: LyricsNotFoundEvent];
649
+ [ManagerEventTypes.LyricsFound]: [player: Player, track: Track | null, payload: LyricsFoundEvent];
650
+ [ManagerEventTypes.LyricsLine]: [player: Player, track: Track | null, payload: LyricsLineEvent];
651
+ [ManagerEventTypes.LyricsNotFound]: [player: Player, track: Track | null, payload: LyricsNotFoundEvent];
619
652
  [ManagerEventTypes.NodeConnect]: [node: Node];
620
653
  [ManagerEventTypes.NodeCreate]: [node: Node];
621
654
  [ManagerEventTypes.NodeDestroy]: [node: Node];
@@ -634,17 +667,35 @@ export interface ManagerEvents {
634
667
  [ManagerEventTypes.PlayerStateUpdate]: [oldPlayer: Player, newPlayer: Player, changeType: PlayerStateUpdateEvent];
635
668
  [ManagerEventTypes.QueueEnd]: [player: Player, track: Track, payload: TrackEndEvent];
636
669
  [ManagerEventTypes.RestoreComplete]: [node: Node];
637
- [ManagerEventTypes.SegmentSkipped]: [player: Player, track: Track, payload: SponsorBlockSegmentSkipped];
638
- [ManagerEventTypes.SegmentsLoaded]: [player: Player, track: Track, payload: SponsorBlockSegmentsLoaded];
670
+ [ManagerEventTypes.SegmentSkipped]: [player: Player, track: Track | null, payload: SponsorBlockSegmentSkipped];
671
+ [ManagerEventTypes.SegmentsLoaded]: [player: Player, track: Track | null, payload: SponsorBlockSegmentsLoaded];
639
672
  [ManagerEventTypes.SocketClosed]: [player: Player, payload: WebSocketClosedEvent];
640
673
  [ManagerEventTypes.TrackEnd]: [player: Player, track: Track, payload: TrackEndEvent];
641
674
  [ManagerEventTypes.TrackError]: [player: Player, track: Track, payload: TrackExceptionEvent];
642
675
  [ManagerEventTypes.TrackStart]: [player: Player, track: Track, payload: TrackStartEvent];
643
676
  [ManagerEventTypes.TrackStuck]: [player: Player, track: Track, payload: TrackStuckEvent];
677
+ [ManagerEventTypes.MixStarted]: [player: Player, payload: NodeLinkMixStartedEvent];
678
+ [ManagerEventTypes.MixEnded]: [player: Player, payload: NodeLinkMixEndedEvent];
679
+ [ManagerEventTypes.NodeLinkConnectionStatus]: [node: Node, payload: NodeLinkConnectionStatusEvent];
680
+ [ManagerEventTypes.NodeLinkEternalBoxInfo]: [player: Player, payload: NodeLinkEternalBoxInfoEvent];
681
+ [ManagerEventTypes.NodeLinkEternalBoxJump]: [player: Player, payload: NodeLinkEternalBoxJumpEvent];
682
+ [ManagerEventTypes.NodeLinkEvent]: [node: Node, payload: NodeLinkEvent];
683
+ [ManagerEventTypes.NodeLinkFiltersChanged]: [player: Player, payload: NodeLinkFiltersChangedEvent];
684
+ [ManagerEventTypes.NodeLinkPause]: [player: Player, payload: NodeLinkPauseEvent];
685
+ [ManagerEventTypes.NodeLinkPlayerConnected]: [player: Player, payload: NodeLinkPlayerConnectedEvent];
686
+ [ManagerEventTypes.NodeLinkPlayerCreated]: [player: Player, payload: NodeLinkPlayerCreatedEvent];
687
+ [ManagerEventTypes.NodeLinkPlayerDestroyed]: [player: Player, payload: NodeLinkPlayerDestroyedEvent];
688
+ [ManagerEventTypes.NodeLinkPlayerReconnecting]: [player: Player, payload: NodeLinkPlayerReconnectingEvent];
689
+ [ManagerEventTypes.NodeLinkSeek]: [player: Player, payload: NodeLinkSeekEvent];
690
+ [ManagerEventTypes.NodeLinkStreamMetadata]: [player: Player, payload: NodeLinkStreamMetadataEvent];
691
+ [ManagerEventTypes.NodeLinkVolumeChanged]: [player: Player, payload: NodeLinkVolumeChangedEvent];
692
+ [ManagerEventTypes.NodeLinkWorkerFailed]: [node: Node, payload: NodeLinkWorkerFailedEvent];
693
+ [ManagerEventTypes.PlayerUpdate]: [player: Player, payload: PlayerUpdateMessage];
644
694
  [ManagerEventTypes.VoiceReceiverDisconnect]: [player: Player];
645
695
  [ManagerEventTypes.VoiceReceiverConnect]: [player: Player];
646
696
  [ManagerEventTypes.VoiceReceiverError]: [player: Player, error: Error];
647
697
  [ManagerEventTypes.VoiceReceiverStartSpeaking]: [player: Player, data: unknown];
698
+ [ManagerEventTypes.VoiceReceiverData]: [player: Player, data: VoiceReceiverData];
648
699
  [ManagerEventTypes.VoiceReceiverEndSpeaking]: [player: Player, data: unknown];
649
700
  }
650
701
  /**
@@ -703,16 +754,33 @@ export interface NodeStats {
703
754
  /** The cpu stats for the node. */
704
755
  cpu: CPUStats;
705
756
  /** The frame stats for the node. */
706
- frameStats: FrameStats;
757
+ frameStats: FrameStats | null;
707
758
  }
708
- /**
709
- * Node Message
710
- */
711
- export interface NodeMessage extends NodeStats {
712
- type: PlayerEventType;
713
- op: "stats" | "playerUpdate" | "event";
759
+ /** Lavalink/NodeLink ready gateway payload. */
760
+ export interface ReadyMessage {
761
+ op: "ready";
762
+ resumed: boolean;
763
+ sessionId: string;
764
+ }
765
+ /** Lavalink/NodeLink stats gateway payload. */
766
+ export interface StatsMessage extends NodeStats {
767
+ op: "stats";
768
+ }
769
+ /** Player state carried by a playerUpdate gateway payload. */
770
+ export interface PlayerUpdateState {
771
+ time: number;
772
+ position: number;
773
+ connected: boolean;
774
+ ping: number;
775
+ }
776
+ /** Lavalink/NodeLink playerUpdate gateway payload. */
777
+ export interface PlayerUpdateMessage {
778
+ op: "playerUpdate";
714
779
  guildId: string;
780
+ state: PlayerUpdateState;
715
781
  }
782
+ /** Discriminated gateway payload received from Lavalink or NodeLink. */
783
+ export type NodeMessage = ReadyMessage | StatsMessage | PlayerUpdateMessage | PlayerEvents | NodeLinkEvent;
716
784
  /**
717
785
  * PlayerEvent interface
718
786
  */
@@ -725,9 +793,10 @@ export interface PlayerEvent {
725
793
  * Exception interface
726
794
  */
727
795
  export interface Exception {
728
- message: string;
796
+ message: string | null;
729
797
  severity: SeverityTypes;
730
798
  cause: string;
799
+ causeStackTrace?: string;
731
800
  }
732
801
  /**
733
802
  * TrackStartEvent interface
@@ -735,6 +804,8 @@ export interface Exception {
735
804
  export interface TrackStartEvent extends PlayerEvent {
736
805
  type: "TrackStartEvent";
737
806
  track: TrackData;
807
+ /** NodeLink YouTube itag selected for playback, when available. */
808
+ playingQuality?: number | null;
738
809
  }
739
810
  /**
740
811
  * TrackEndEvent interface
@@ -751,6 +822,7 @@ export interface TrackExceptionEvent extends PlayerEvent {
751
822
  exception?: Exception;
752
823
  guildId: string;
753
824
  type: "TrackExceptionEvent";
825
+ track?: TrackData | null;
754
826
  }
755
827
  /**
756
828
  * TrackStuckEvent interface
@@ -758,6 +830,8 @@ export interface TrackExceptionEvent extends PlayerEvent {
758
830
  export interface TrackStuckEvent extends PlayerEvent {
759
831
  type: "TrackStuckEvent";
760
832
  thresholdMs: number;
833
+ track?: TrackData | null;
834
+ reason?: string;
761
835
  }
762
836
  /**
763
837
  * WebSocketClosedEvent interface
@@ -772,23 +846,39 @@ export interface WebSocketClosedEvent extends PlayerEvent {
772
846
  * SponsorBlockSegmentsLoaded interface
773
847
  */
774
848
  export interface SponsorBlockSegmentsLoaded extends PlayerEvent {
775
- type: "SegmentsLoaded";
849
+ type: "SegmentsLoaded" | "SponsorBlockSegmentsLoadedEvent";
776
850
  segments: {
777
851
  category: string;
778
852
  start: number;
779
853
  end: number;
854
+ /** NodeLink SponsorBlock segment id. */
855
+ uuid?: string;
856
+ actionType?: string;
857
+ votes?: number;
858
+ locked?: boolean;
859
+ videoDuration?: number;
860
+ description?: string;
780
861
  }[];
781
862
  }
782
863
  /**
783
864
  * SponsorBlockSegmentSkipped interface
784
865
  */
785
866
  export interface SponsorBlockSegmentSkipped extends PlayerEvent {
786
- type: "SegmentSkipped";
867
+ type: "SegmentSkipped" | "SponsorBlockSegmentSkippedEvent";
787
868
  segment: {
788
869
  category: string;
789
870
  start: number;
790
871
  end: number;
872
+ /** NodeLink SponsorBlock segment id. */
873
+ uuid?: string;
874
+ actionType?: string;
875
+ votes?: number;
876
+ locked?: boolean;
877
+ videoDuration?: number;
878
+ description?: string;
791
879
  };
880
+ /** Milliseconds skipped by NodeLink. */
881
+ skippedMs?: number;
792
882
  }
793
883
  /**
794
884
  * SponsorBlockChapterStarted interface
@@ -804,6 +894,204 @@ export interface SponsorBlockChapterStarted extends PlayerEvent {
804
894
  duration: number;
805
895
  };
806
896
  }
897
+ /**
898
+ * NodeLink SponsorBlock segment data.
899
+ */
900
+ export interface NodeLinkSponsorBlockSegment {
901
+ uuid: string;
902
+ start: number;
903
+ end: number;
904
+ category: string;
905
+ actionType: string;
906
+ votes: number;
907
+ locked: boolean;
908
+ videoDuration: number;
909
+ description: string;
910
+ }
911
+ /**
912
+ * NodeLink SponsorBlock state.
913
+ */
914
+ export interface NodeLinkSponsorBlockState {
915
+ enabled: boolean;
916
+ categories: string[];
917
+ actionTypes: string[];
918
+ segments: NodeLinkSponsorBlockSegment[];
919
+ lastSkippedUuid: string | null;
920
+ skipMarginMs: number;
921
+ }
922
+ /** Mutable NodeLink SponsorBlock settings accepted by PATCH. */
923
+ export interface NodeLinkSponsorBlockUpdate {
924
+ enabled?: boolean;
925
+ categories?: string[];
926
+ actionTypes?: string[];
927
+ skipMarginMs?: number;
928
+ }
929
+ /**
930
+ * NodeLink chapter data.
931
+ */
932
+ export interface NodeLinkChapter {
933
+ title: string;
934
+ startTime: number;
935
+ thumbnails: Array<{
936
+ url: string;
937
+ width?: number;
938
+ height?: number;
939
+ [key: string]: unknown;
940
+ }>;
941
+ duration?: number;
942
+ endTime?: number;
943
+ }
944
+ /** Track metadata accepted by NodeLink's encode endpoints. */
945
+ export interface NodeLinkTrackEncodeInput {
946
+ title: string;
947
+ author: string;
948
+ length: number;
949
+ identifier: string;
950
+ isStream: boolean;
951
+ uri: string | null;
952
+ artworkUrl: string | null;
953
+ isrc: string | null;
954
+ sourceName: string;
955
+ position: number;
956
+ details: Array<string | null>;
957
+ }
958
+ /** NodeLink connection diagnostics response. */
959
+ export interface NodeLinkConnectionInfo {
960
+ status: string;
961
+ metrics: Record<string, unknown> | null;
962
+ reason?: string;
963
+ }
964
+ /** NodeLink meaning endpoint response. */
965
+ export type NodeLinkMeaningResult = {
966
+ loadType: "meaning";
967
+ data: Record<string, unknown>;
968
+ } | {
969
+ loadType: "empty";
970
+ data: Record<string, never>;
971
+ } | {
972
+ loadType: "error";
973
+ data: {
974
+ message?: string;
975
+ severity?: string;
976
+ } & Record<string, unknown>;
977
+ };
978
+ /** NodeLink direct track stream URL response. */
979
+ export interface NodeLinkTrackStreamResult {
980
+ url?: string;
981
+ protocol?: string | null;
982
+ format?: string | null;
983
+ hlsUrl?: string | null;
984
+ formats?: Array<Record<string, unknown>>;
985
+ additionalData?: Record<string, unknown>;
986
+ exception?: Exception | null;
987
+ }
988
+ /** Options accepted by NodeLink's raw PCM loadstream endpoint. */
989
+ export interface NodeLinkLoadStreamOptions {
990
+ volume?: number;
991
+ position?: number;
992
+ filters?: LavalinkFilters;
993
+ }
994
+ /**
995
+ * NodeLink active mix layer.
996
+ */
997
+ export interface NodeLinkMix {
998
+ id: string;
999
+ track: TrackData;
1000
+ volume: number;
1001
+ position?: number;
1002
+ startTime?: number;
1003
+ }
1004
+ /**
1005
+ * NodeLink mix started event.
1006
+ */
1007
+ export interface NodeLinkMixStartedEvent extends PlayerEvent {
1008
+ type: "MixStartedEvent";
1009
+ mixId: string;
1010
+ track?: TrackData;
1011
+ volume?: number;
1012
+ }
1013
+ /**
1014
+ * NodeLink mix ended event.
1015
+ */
1016
+ export interface NodeLinkMixEndedEvent extends PlayerEvent {
1017
+ type: "MixEndedEvent";
1018
+ mixId: string;
1019
+ reason: string;
1020
+ }
1021
+ /** NodeLink connection diagnostics broadcast. This event is node-wide. */
1022
+ export interface NodeLinkConnectionStatusEvent {
1023
+ op: "event";
1024
+ type: "ConnectionStatusEvent";
1025
+ status: string;
1026
+ metrics: Record<string, unknown>;
1027
+ }
1028
+ /** NodeLink worker failure broadcast. This event is node-wide. */
1029
+ export interface NodeLinkWorkerFailedEvent {
1030
+ op: "event";
1031
+ type: "WorkerFailedEvent";
1032
+ affectedGuilds: string[];
1033
+ message: string;
1034
+ }
1035
+ export interface NodeLinkVolumeChangedEvent extends PlayerEvent {
1036
+ type: "VolumeChangedEvent";
1037
+ volume: number;
1038
+ }
1039
+ export interface NodeLinkFiltersChangedEvent extends PlayerEvent {
1040
+ type: "FiltersChangedEvent";
1041
+ filters: LavalinkFilters | {
1042
+ filters: LavalinkFilters;
1043
+ };
1044
+ }
1045
+ export interface NodeLinkSeekEvent extends PlayerEvent {
1046
+ type: "SeekEvent";
1047
+ position: number;
1048
+ duration: number;
1049
+ }
1050
+ export interface NodeLinkPauseEvent extends PlayerEvent {
1051
+ type: "PauseEvent";
1052
+ paused: boolean;
1053
+ }
1054
+ export interface NodeLinkPlayerCreatedEvent extends PlayerEvent {
1055
+ type: "PlayerCreatedEvent";
1056
+ player: LavaPlayer & {
1057
+ fading?: NodeLinkFadingConfig;
1058
+ loudnessNormalizer?: boolean;
1059
+ };
1060
+ }
1061
+ export interface NodeLinkPlayerDestroyedEvent extends PlayerEvent {
1062
+ type: "PlayerDestroyedEvent";
1063
+ }
1064
+ export interface NodeLinkPlayerConnectedEvent extends PlayerEvent {
1065
+ type: "PlayerConnectedEvent";
1066
+ voice: LavalinkVoiceStateResponse;
1067
+ }
1068
+ export interface NodeLinkPlayerReconnectingEvent extends PlayerEvent {
1069
+ type: "PlayerReconnectingEvent";
1070
+ voice: LavalinkVoiceStateResponse;
1071
+ }
1072
+ export interface NodeLinkEternalBoxInfoEvent extends PlayerEvent {
1073
+ type: "EternalBoxInfoEvent";
1074
+ track: TrackData | null;
1075
+ eternalbox: Record<string, unknown>;
1076
+ }
1077
+ export interface NodeLinkEternalBoxJumpEvent extends PlayerEvent {
1078
+ type: "EternalBoxJumpEvent";
1079
+ track: TrackData | null;
1080
+ eternalbox: unknown;
1081
+ }
1082
+ export interface NodeLinkStreamMetadataEvent extends PlayerEvent {
1083
+ type: "StreamMetadataEvent";
1084
+ track: TrackData | null;
1085
+ stream: unknown;
1086
+ }
1087
+ export type NodeLinkPlayerEvent = NodeLinkVolumeChangedEvent | NodeLinkFiltersChangedEvent | NodeLinkSeekEvent | NodeLinkPauseEvent | NodeLinkPlayerCreatedEvent | NodeLinkPlayerDestroyedEvent | NodeLinkPlayerConnectedEvent | NodeLinkPlayerReconnectingEvent | NodeLinkMixStartedEvent | NodeLinkMixEndedEvent | NodeLinkEternalBoxInfoEvent | NodeLinkEternalBoxJumpEvent | NodeLinkStreamMetadataEvent;
1088
+ export type NodeLinkKnownEvent = NodeLinkConnectionStatusEvent | NodeLinkWorkerFailedEvent | NodeLinkPlayerEvent;
1089
+ /** Forward-compatible NodeLink event payload, including plugin-defined events. */
1090
+ export type NodeLinkEvent = NodeLinkKnownEvent | ({
1091
+ op: "event";
1092
+ type: string;
1093
+ guildId?: string;
1094
+ } & Record<string, unknown>);
807
1095
  /**
808
1096
  * SponsorBlockChaptersLoaded interface
809
1097
  */
@@ -818,23 +1106,6 @@ export interface SponsorBlockChaptersLoaded extends PlayerEvent {
818
1106
  duration: number;
819
1107
  }[];
820
1108
  }
821
- /**
822
- * NodeStats interface
823
- */
824
- export interface NodeStats {
825
- /** The amount of players on the node. */
826
- players: number;
827
- /** The amount of playing players on the node. */
828
- playingPlayers: number;
829
- /** The uptime for the node. */
830
- uptime: number;
831
- /** The memory stats for the node. */
832
- memory: MemoryStats;
833
- /** The cpu stats for the node. */
834
- cpu: CPUStats;
835
- /** The frame stats for the node. */
836
- frameStats: FrameStats;
837
- }
838
1109
  /**
839
1110
  * MemoryStats interface
840
1111
  */
@@ -856,8 +1127,10 @@ export interface CPUStats {
856
1127
  cores: number;
857
1128
  /** The system load. */
858
1129
  systemLoad: number;
859
- /** The lavalink load. */
1130
+ /** The Lavalink process load. Normalized from nodelinkLoad on NodeLink. */
860
1131
  lavalinkLoad: number;
1132
+ /** The native NodeLink process load, when reported by NodeLink. */
1133
+ nodelinkLoad?: number;
861
1134
  }
862
1135
  /**
863
1136
  * FrameStats interface
@@ -869,6 +1142,8 @@ export interface FrameStats {
869
1142
  nulled?: number;
870
1143
  /** The amount of deficit frames. */
871
1144
  deficit?: number;
1145
+ /** The expected frame count reported by NodeLink. */
1146
+ expected?: number;
872
1147
  }
873
1148
  /**
874
1149
  * LavalinkInfo interface
@@ -879,7 +1154,7 @@ export interface LavalinkInfo {
879
1154
  major: number;
880
1155
  minor: number;
881
1156
  patch: number;
882
- preRelease: string;
1157
+ preRelease: string | null;
883
1158
  };
884
1159
  buildTime: number;
885
1160
  git: {
@@ -887,13 +1162,21 @@ export interface LavalinkInfo {
887
1162
  commit: string;
888
1163
  commitTime: number;
889
1164
  };
890
- jvm: string;
891
- lavaplayer: string;
1165
+ jvm?: string;
1166
+ lavaplayer?: string;
1167
+ node?: string;
1168
+ voice?: {
1169
+ name: string;
1170
+ version: string;
1171
+ };
1172
+ isNodelink?: boolean;
892
1173
  sourceManagers: string[];
893
1174
  filters: string[];
894
1175
  plugins: {
895
1176
  name: string;
896
1177
  version: string;
1178
+ author?: string | null;
1179
+ path?: string | null;
897
1180
  }[];
898
1181
  }
899
1182
  /**
@@ -903,17 +1186,21 @@ export interface LyricsLine {
903
1186
  timestamp: number;
904
1187
  duration: number;
905
1188
  line: string;
906
- plugin: object;
1189
+ words?: Array<Record<string, unknown>>;
1190
+ plugin: Record<string, unknown>;
907
1191
  }
908
1192
  /**
909
1193
  * Lyrics interface
910
1194
  */
911
1195
  export interface Lyrics {
912
- source: string;
913
- provider: string;
914
- text?: string;
1196
+ /** Lavalink lyrics plugin source field. */
1197
+ source?: string | null;
1198
+ /** NodeLink lyrics source field. */
1199
+ sourceName?: string | null;
1200
+ provider: string | null;
1201
+ text?: string | null;
915
1202
  lines: LyricsLine[];
916
- plugin: object[];
1203
+ plugin: Record<string, unknown> | Array<Record<string, unknown>>;
917
1204
  }
918
1205
  /**
919
1206
  * LyricsFoundEvent interface
@@ -947,6 +1234,23 @@ export interface NodeLinkGetLyricsMultiple {
947
1234
  loadType: "lyricsMultiple";
948
1235
  data: NodeLinkGetLyricsData[];
949
1236
  }
1237
+ /**
1238
+ * NodeLink Get Lyrics interface
1239
+ */
1240
+ export interface NodeLinkGetLyricsLyrics {
1241
+ loadType: "lyrics";
1242
+ data: {
1243
+ name?: string;
1244
+ synced?: boolean;
1245
+ provider?: string;
1246
+ lines?: {
1247
+ time: number;
1248
+ duration?: number;
1249
+ text: string;
1250
+ words?: Record<string, unknown>[];
1251
+ }[];
1252
+ };
1253
+ }
950
1254
  /**
951
1255
  * NodeLink Get Lyrics Empty interface
952
1256
  */
@@ -981,11 +1285,22 @@ export interface NodeLinkGetLyricsError {
981
1285
  loadType: "error";
982
1286
  data: {
983
1287
  message: string;
984
- severity: Severity;
985
- cause: string;
1288
+ severity: Severity | string;
1289
+ cause?: string;
986
1290
  trace?: string;
987
1291
  };
988
1292
  }
1293
+ /** Audio format names used by NodeLink voice receive frames. */
1294
+ export type NodeLinkVoiceReceiveFormat = "opus" | "pcm_s16le" | "ogg";
1295
+ /** A single NodeLink voice receive audio frame. */
1296
+ export interface VoiceReceiverData {
1297
+ userId: string;
1298
+ guildId: string;
1299
+ data: Buffer;
1300
+ type: NodeLinkVoiceReceiveFormat;
1301
+ ssrc: number;
1302
+ timestamp: number;
1303
+ }
989
1304
  /**
990
1305
  * Start Speaking Event Voice Receiver Data interface
991
1306
  */
@@ -998,6 +1313,12 @@ export interface StartSpeakingEventVoiceReceiverData {
998
1313
  * The guild ID of the guild where the user started speaking.
999
1314
  */
1000
1315
  guildId: string;
1316
+ /** The SSRC identifier of the speaking user. */
1317
+ ssrc?: number;
1318
+ /** The audio frame type sent by NodeLink. */
1319
+ type?: NodeLinkVoiceReceiveFormat;
1320
+ /** The timestamp sent by NodeLink for the start frame. */
1321
+ timestamp?: number;
1001
1322
  }
1002
1323
  /**
1003
1324
  * End Speaking Event Voice Receiver Data interface
@@ -1014,11 +1335,15 @@ export interface EndSpeakingEventVoiceReceiverData {
1014
1335
  /**
1015
1336
  * The audio data received from the user in base64.
1016
1337
  */
1017
- data: string;
1338
+ data: string | Buffer;
1018
1339
  /**
1019
1340
  * The type of the audio data. Can be either opus or pcm. Older versions may include ogg/opus.
1020
1341
  */
1021
- type: "opus" | "pcm";
1342
+ type: NodeLinkVoiceReceiveFormat;
1343
+ /** The SSRC identifier of the speaking user. */
1344
+ ssrc?: number;
1345
+ /** The timestamp sent by NodeLink for the final frame. */
1346
+ timestamp?: number;
1022
1347
  }
1023
1348
  /**
1024
1349
  * Base Voice Receiver Event interface
@@ -1073,6 +1398,33 @@ export interface PlayOptions {
1073
1398
  readonly endTime?: number;
1074
1399
  /** Whether to not replace the track if a play payload is sent. */
1075
1400
  readonly noReplace?: boolean;
1401
+ /** NodeLink optional audio track id for alternate audio tracks. */
1402
+ readonly audioTrackId?: string;
1403
+ /** Legacy NodeLink alias for audioTrackId. */
1404
+ readonly language?: string;
1405
+ /** NodeLink loudness normalizer toggle. */
1406
+ readonly loudnessNormalizer?: boolean;
1407
+ }
1408
+ /** NodeLink options for a preloaded next track. */
1409
+ export interface NodeLinkNextTrackOptions {
1410
+ readonly audioTrackId?: string;
1411
+ readonly language?: string;
1412
+ }
1413
+ /** NodeLink fade action configuration. */
1414
+ export interface NodeLinkFadingSection {
1415
+ duration: number;
1416
+ curve?: string;
1417
+ type?: "volume" | "tape" | "scratch" | "both";
1418
+ }
1419
+ /** NodeLink fading configuration accepted by Update Player. */
1420
+ export interface NodeLinkFadingConfig {
1421
+ enabled?: boolean;
1422
+ trackStart?: NodeLinkFadingSection;
1423
+ trackEnd?: NodeLinkFadingSection;
1424
+ trackStop?: NodeLinkFadingSection;
1425
+ seek?: NodeLinkFadingSection;
1426
+ pause?: NodeLinkFadingSection;
1427
+ resume?: NodeLinkFadingSection;
1076
1428
  }
1077
1429
  /**
1078
1430
  * RestPlayOptions interface
@@ -1091,7 +1443,23 @@ export interface RestPlayOptions {
1091
1443
  identifier?: string | null;
1092
1444
  /** The user data of the track. */
1093
1445
  userData?: object;
1446
+ /** NodeLink optional audio track id for alternate audio tracks. */
1447
+ audioTrackId?: string | null;
1448
+ /** Legacy NodeLink alias for audioTrackId. */
1449
+ language?: string | null;
1094
1450
  };
1451
+ /** NodeLink next track preload payload. */
1452
+ nextTrack?: {
1453
+ encoded?: string | null;
1454
+ identifier?: string | null;
1455
+ userData?: object;
1456
+ audioTrackId?: string | null;
1457
+ language?: string | null;
1458
+ } | null;
1459
+ /** NodeLink loudness normalizer toggle. */
1460
+ loudnessNormalizer?: boolean;
1461
+ /** NodeLink playback fading configuration. */
1462
+ fading?: NodeLinkFadingConfig;
1095
1463
  /** The player position in a track. */
1096
1464
  position?: number;
1097
1465
  /** The track time to end at. */
@@ -1101,7 +1469,7 @@ export interface RestPlayOptions {
1101
1469
  /** Whether the player is paused. */
1102
1470
  paused?: boolean;
1103
1471
  /** The audio effects. */
1104
- filters?: object;
1472
+ filters?: LavalinkFilters;
1105
1473
  /** voice payload. */
1106
1474
  voice?: LavalinkVoiceStateUpdate;
1107
1475
  };
@@ -1140,12 +1508,25 @@ export interface SerializedPlayerState {
1140
1508
  filters: {
1141
1509
  bassBoostlevel: number | null;
1142
1510
  equalizer: EqualizerBand[];
1143
- distortion: DistortionOptions;
1144
- karaoke: KaraokeOptions;
1145
- timescale: TimescaleOptions;
1146
- vibrato: VibratoOptions;
1147
- rotation: RotationOptions;
1148
- reverb: ReverbOptions;
1511
+ distortion: DistortionOptions | null;
1512
+ karaoke: KaraokeOptions | null;
1513
+ timescale: TimescaleOptions | null;
1514
+ tremolo: TremoloOptions | null;
1515
+ vibrato: VibratoOptions | null;
1516
+ rotation: RotationOptions | null;
1517
+ channelMix: ChannelMixOptions | null;
1518
+ lowPass: LowPassOptions | null;
1519
+ highpass: HighPassOptions | null;
1520
+ echo: EchoOptions | null;
1521
+ chorus: ChorusOptions | null;
1522
+ compressor: CompressorOptions | null;
1523
+ flanger: FlangerOptions | null;
1524
+ phaser: PhaserOptions | null;
1525
+ phonograph: PhonographOptions | null;
1526
+ spatial: SpatialOptions | null;
1527
+ tape: TapeOptions | null;
1528
+ pluginFilters: Record<string, unknown>;
1529
+ reverb: ReverbOptions | null;
1149
1530
  volume: number;
1150
1531
  filterStatus: Record<string, boolean>;
1151
1532
  } | null;
@@ -1183,6 +1564,26 @@ export interface LavalinkSession {
1183
1564
  resuming?: boolean;
1184
1565
  timeout?: number;
1185
1566
  }
1567
+ export interface RoutePlannerStatus {
1568
+ class: "RotatingIpRoutePlanner" | "NanoIpRoutePlanner" | "RotatingNanoIpRoutePlanner" | "BalancingIpRoutePlanner";
1569
+ details: RoutePlannerDetails;
1570
+ }
1571
+ export interface RoutePlannerDetails {
1572
+ ipBlock: {
1573
+ type: "Inet4Address" | "Inet6Address";
1574
+ size: string;
1575
+ };
1576
+ failingAddresses: {
1577
+ failingAddress: string;
1578
+ failingTimestamp: number;
1579
+ failingTime: string;
1580
+ }[];
1581
+ rotateIndex?: string;
1582
+ ipIndex?: string;
1583
+ currentAddress?: string;
1584
+ currentAddressIndex?: string;
1585
+ blockIndex?: string;
1586
+ }
1186
1587
  /**
1187
1588
  * ManagerInitOptions interface
1188
1589
  */
@@ -1199,20 +1600,36 @@ export interface EqualizerBand {
1199
1600
  /** The gain amount being -0.25 to 1.00, 0.25 being double. */
1200
1601
  gain: number;
1201
1602
  }
1603
+ export interface AnimationTransition {
1604
+ durationMs: number;
1605
+ curve?: string;
1606
+ }
1202
1607
  /** Options for adjusting the timescale of audio. */
1203
1608
  export interface TimescaleOptions {
1204
1609
  speed?: number;
1205
1610
  pitch?: number;
1206
1611
  rate?: number;
1612
+ transition?: AnimationTransition;
1613
+ }
1614
+ /** Options for applying tremolo effect to audio. */
1615
+ export interface TremoloOptions {
1616
+ frequency?: number;
1617
+ depth?: number;
1618
+ alpha?: number;
1619
+ transition?: AnimationTransition;
1207
1620
  }
1208
1621
  /** Options for applying vibrato effect to audio. */
1209
1622
  export interface VibratoOptions {
1210
- frequency: number;
1211
- depth: number;
1623
+ frequency?: number;
1624
+ depth?: number;
1625
+ alpha?: number;
1626
+ transition?: AnimationTransition;
1212
1627
  }
1213
1628
  /** Options for applying rotation effect to audio. */
1214
1629
  export interface RotationOptions {
1215
1630
  rotationHz: number;
1631
+ alpha?: number;
1632
+ transition?: AnimationTransition;
1216
1633
  }
1217
1634
  /** Options for applying karaoke effect to audio. */
1218
1635
  export interface KaraokeOptions {
@@ -1220,6 +1637,8 @@ export interface KaraokeOptions {
1220
1637
  monoLevel?: number;
1221
1638
  filterBand?: number;
1222
1639
  filterWidth?: number;
1640
+ alpha?: number;
1641
+ transition?: AnimationTransition;
1223
1642
  }
1224
1643
  /** Options for applying distortion effect to audio. */
1225
1644
  export interface DistortionOptions {
@@ -1231,13 +1650,149 @@ export interface DistortionOptions {
1231
1650
  tanScale?: number;
1232
1651
  offset?: number;
1233
1652
  scale?: number;
1234
- }
1235
- /** Options for applying reverb effect to audio. */
1653
+ alpha?: number;
1654
+ transition?: AnimationTransition;
1655
+ }
1656
+ /** Options for mixing stereo channels. */
1657
+ export interface ChannelMixOptions {
1658
+ leftToLeft?: number;
1659
+ leftToRight?: number;
1660
+ rightToLeft?: number;
1661
+ rightToRight?: number;
1662
+ transition?: AnimationTransition;
1663
+ }
1664
+ /** Options for applying a low pass filter. */
1665
+ export interface LowPassOptions {
1666
+ smoothing?: number;
1667
+ targetAlpha?: number;
1668
+ logSmoothing?: number;
1669
+ transition?: AnimationTransition;
1670
+ }
1671
+ /** Options for applying a high pass filter. */
1672
+ export interface HighPassOptions {
1673
+ smoothing?: number;
1674
+ targetAlpha?: number;
1675
+ transition?: AnimationTransition;
1676
+ }
1677
+ /** Options for applying an echo filter. */
1678
+ export interface EchoOptions {
1679
+ delay?: number;
1680
+ feedback?: number;
1681
+ mix?: number;
1682
+ alpha?: number;
1683
+ transition?: AnimationTransition;
1684
+ }
1685
+ /** Options for applying a reverb filter. */
1236
1686
  export interface ReverbOptions {
1237
1687
  wet?: number;
1238
1688
  dry?: number;
1239
1689
  roomSize?: number;
1240
1690
  damping?: number;
1691
+ wetLevel?: number;
1692
+ dryLevel?: number;
1693
+ width?: number;
1694
+ mix?: number;
1695
+ alpha?: number;
1696
+ transition?: AnimationTransition;
1697
+ }
1698
+ /** Options for applying a chorus filter. */
1699
+ export interface ChorusOptions {
1700
+ rate?: number;
1701
+ depth?: number;
1702
+ feedback?: number;
1703
+ delay?: number;
1704
+ mix?: number;
1705
+ alpha?: number;
1706
+ transition?: AnimationTransition;
1707
+ }
1708
+ /** Options for applying a compressor filter. */
1709
+ export interface CompressorOptions {
1710
+ threshold?: number;
1711
+ ratio?: number;
1712
+ attack?: number;
1713
+ release?: number;
1714
+ gain?: number;
1715
+ makeupGain?: number;
1716
+ alpha?: number;
1717
+ transition?: AnimationTransition;
1718
+ }
1719
+ /** Options for applying a flanger filter. */
1720
+ export interface FlangerOptions {
1721
+ rate?: number;
1722
+ depth?: number;
1723
+ feedback?: number;
1724
+ delay?: number;
1725
+ mix?: number;
1726
+ alpha?: number;
1727
+ transition?: AnimationTransition;
1728
+ }
1729
+ /** Options for applying a phaser filter. */
1730
+ export interface PhaserOptions {
1731
+ rate?: number;
1732
+ depth?: number;
1733
+ feedback?: number;
1734
+ delay?: number;
1735
+ mix?: number;
1736
+ stages?: number;
1737
+ minFrequency?: number;
1738
+ maxFrequency?: number;
1739
+ alpha?: number;
1740
+ transition?: AnimationTransition;
1741
+ }
1742
+ /** Options for applying a spatial audio filter. */
1743
+ export interface SpatialOptions {
1744
+ x?: number;
1745
+ y?: number;
1746
+ z?: number;
1747
+ depth?: number;
1748
+ rate?: number;
1749
+ alpha?: number;
1750
+ transition?: AnimationTransition;
1751
+ }
1752
+ /** Options for applying a phonograph filter. */
1753
+ export interface PhonographOptions {
1754
+ frequency?: number;
1755
+ depth?: number;
1756
+ crackle?: number;
1757
+ flutter?: number;
1758
+ room?: number;
1759
+ micAgc?: number;
1760
+ drive?: number;
1761
+ alpha?: number;
1762
+ transition?: AnimationTransition;
1763
+ }
1764
+ /** Options for applying a tape filter. */
1765
+ export interface TapeOptions {
1766
+ duration?: number;
1767
+ type?: "start" | "stop";
1768
+ curve?: string;
1769
+ }
1770
+ export interface LavalinkFilters {
1771
+ volume?: number;
1772
+ equalizer?: EqualizerBand[] | {
1773
+ bands?: EqualizerBand[];
1774
+ transition?: AnimationTransition;
1775
+ };
1776
+ karaoke?: KaraokeOptions | null;
1777
+ timescale?: TimescaleOptions | null;
1778
+ tremolo?: TremoloOptions | null;
1779
+ vibrato?: VibratoOptions | null;
1780
+ distortion?: DistortionOptions | null;
1781
+ rotation?: RotationOptions | null;
1782
+ channelMix?: ChannelMixOptions | null;
1783
+ lowPass?: LowPassOptions | null;
1784
+ lowpass?: LowPassOptions | null;
1785
+ highpass?: HighPassOptions | null;
1786
+ echo?: EchoOptions | null;
1787
+ reverb?: ReverbOptions | null;
1788
+ chorus?: ChorusOptions | null;
1789
+ compressor?: CompressorOptions | null;
1790
+ flanger?: FlangerOptions | null;
1791
+ phaser?: PhaserOptions | null;
1792
+ phonograph?: PhonographOptions | null;
1793
+ spatial?: SpatialOptions | null;
1794
+ tape?: TapeOptions | null;
1795
+ pluginFilters?: Record<string, unknown>;
1241
1796
  }
1242
1797
  export interface LastFmResponse {
1243
1798
  error?: number;
@@ -1305,7 +1860,7 @@ export type Sizes = "0" | "1" | "2" | "3" | "default" | "mqdefault" | "hqdefault
1305
1860
  /**
1306
1861
  * Track Source Name Enum type
1307
1862
  */
1308
- export type TrackSourceName = keyof typeof TrackSourceTypes;
1863
+ export type TrackSourceName = `${TrackSourceTypes}` | string;
1309
1864
  /**
1310
1865
  * Use Node Option Enum type
1311
1866
  */
@@ -1317,7 +1872,7 @@ export type TrackEndReason = keyof typeof TrackEndReasonTypes;
1317
1872
  /**
1318
1873
  * Player Event Type Enum type
1319
1874
  */
1320
- export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted" | "LyricsFoundEvent" | "LyricsNotFoundEvent" | "LyricsLineEvent";
1875
+ export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "MixStartedEvent" | "MixEndedEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "SponsorBlockSegmentSkippedEvent" | "SponsorBlockSegmentsLoadedEvent" | "ChaptersLoaded" | "ChapterStarted" | "LyricsFoundEvent" | "LyricsNotFoundEvent" | "LyricsLineEvent" | "VolumeChangedEvent" | "FiltersChangedEvent" | "SeekEvent" | "PauseEvent" | "PlayerCreatedEvent" | "PlayerDestroyedEvent" | "PlayerReconnectingEvent" | "PlayerConnectedEvent" | "EternalBoxInfoEvent" | "EternalBoxJumpEvent" | "StreamMetadataEvent";
1321
1876
  /**
1322
1877
  * Severity Types Enum type
1323
1878
  */
@@ -1329,11 +1884,11 @@ export type SponsorBlockSegmentEvents = SponsorBlockSegmentSkipped | SponsorBloc
1329
1884
  /**
1330
1885
  * SponsorBlock Segment Event Type Enum type
1331
1886
  */
1332
- export type SponsorBlockSegmentEventType = "SegmentSkipped" | "SegmentsLoaded" | "ChapterStarted" | "ChaptersLoaded";
1887
+ export type SponsorBlockSegmentEventType = "SegmentSkipped" | "SegmentsLoaded" | "SponsorBlockSegmentSkippedEvent" | "SponsorBlockSegmentsLoadedEvent" | "ChapterStarted" | "ChaptersLoaded";
1333
1888
  /**
1334
1889
  * Player Events Enum type
1335
1890
  */
1336
- export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents | LyricsEvent;
1891
+ export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents | LyricsEvent | NodeLinkPlayerEvent;
1337
1892
  /**
1338
1893
  * Load Type Enum type
1339
1894
  */
@@ -1341,7 +1896,7 @@ export type LoadType = keyof typeof LoadTypes;
1341
1896
  /**
1342
1897
  * NodeLink Get Lyrics Enum type
1343
1898
  */
1344
- export type NodeLinkGetLyrics = NodeLinkGetLyricsSingle | NodeLinkGetLyricsMultiple | NodeLinkGetLyricsEmpty | NodeLinkGetLyricsError;
1899
+ export type NodeLinkGetLyrics = NodeLinkGetLyricsLyrics | NodeLinkGetLyricsSingle | NodeLinkGetLyricsMultiple | NodeLinkGetLyricsEmpty | NodeLinkGetLyricsError;
1345
1900
  /**
1346
1901
  * Voice Receiver Event Enum type
1347
1902
  */
@@ -1349,7 +1904,7 @@ export type VoiceReceiverEvent = StartSpeakingEventVoiceReceiver | EndSpeakingEv
1349
1904
  /**
1350
1905
  * Search Result Enum type
1351
1906
  */
1352
- export type SearchResult = TrackSearchResult | SearchSearchResult | PlaylistSearchResult | ErrorOrEmptySearchResult | AlbumSearchResult | ArtistSearchResult | StationSearchResult | PodcastSearchResult | ShowSearchResult | ShortSearchResult;
1907
+ export type SearchResult = TrackSearchResult | EpisodeSearchResult | SearchSearchResult | PlaylistSearchResult | ErrorOrEmptySearchResult | AlbumSearchResult | ArtistSearchResult | StationSearchResult | PodcastSearchResult | ShowSearchResult | ShortSearchResult;
1353
1908
  /**
1354
1909
  * Lyrics Event Enum type
1355
1910
  */