diff --git a/typings/lib/core/Music.d.ts b/typings/lib/core/Music.d.ts index d3273417..f58f6c22 100644 --- a/typings/lib/core/Music.d.ts +++ b/typings/lib/core/Music.d.ts @@ -37,9 +37,17 @@ declare class Music { /** * Retrieves artist's info & content. * - * @param {string} id + * @param {string} artist_id + * @returns {Promise.} */ - getArtist(artist_id: any): Promise; + getArtist(artist_id: string): Promise; + /** + * Retrieves album. + * + * @param {string} album_id + * @returns {Promise.} + */ + getAlbum(album_id: string): Promise; /** * Retrieves song lyrics. * @@ -84,3 +92,4 @@ import HomeFeed = require("../parser/ytmusic/HomeFeed"); import Explore = require("../parser/ytmusic/Explore"); import Library = require("../parser/ytmusic/Library"); import Artist = require("../parser/ytmusic/Artist"); +import Album = require("../parser/ytmusic/Album"); diff --git a/typings/lib/parser/contents/classes/MusicDetailHeader.d.ts b/typings/lib/parser/contents/classes/MusicDetailHeader.d.ts new file mode 100644 index 00000000..a9199c31 --- /dev/null +++ b/typings/lib/parser/contents/classes/MusicDetailHeader.d.ts @@ -0,0 +1,22 @@ +export = MusicDetailHeader; +declare class MusicDetailHeader { + constructor(data: any); + type: string; + title: Text; + description: Text; + subtitle: Text; + second_subtitle: Text; + year: any; + song_count: any; + total_duration: any; + thumbnails: Thumbnail[]; + badges: any; + author: { + name: any; + channel_id: any; + endpoint: any; + }; + menu: any; +} +import Text = require("./Text"); +import Thumbnail = require("./Thumbnail"); diff --git a/typings/lib/parser/contents/classes/MusicResponsiveListItem.d.ts b/typings/lib/parser/contents/classes/MusicResponsiveListItem.d.ts index 81feb3fb..6eb1d8b6 100644 --- a/typings/lib/parser/contents/classes/MusicResponsiveListItem.d.ts +++ b/typings/lib/parser/contents/classes/MusicResponsiveListItem.d.ts @@ -3,6 +3,7 @@ declare class MusicResponsiveListItem { constructor(data: any); type: string; endpoint: NavigationEndpoint; + index: Text; thumbnails: Thumbnail[]; badges: any; menu: any; @@ -43,4 +44,5 @@ declare class MusicResponsiveListItem { #private; } import NavigationEndpoint = require("./NavigationEndpoint"); +import Text = require("./Text"); import Thumbnail = require("./Thumbnail"); diff --git a/typings/lib/parser/contents/classes/MusicResponsiveListItemFixedColumn.d.ts b/typings/lib/parser/contents/classes/MusicResponsiveListItemFixedColumn.d.ts new file mode 100644 index 00000000..32d7ea94 --- /dev/null +++ b/typings/lib/parser/contents/classes/MusicResponsiveListItemFixedColumn.d.ts @@ -0,0 +1,8 @@ +export = MusicResponsiveListItemFixedColumn; +declare class MusicResponsiveListItemFixedColumn { + constructor(data: any); + type: string; + title: Text; + display_priority: any; +} +import Text = require("./Text"); diff --git a/typings/lib/parser/ytmusic/Album.d.ts b/typings/lib/parser/ytmusic/Album.d.ts new file mode 100644 index 00000000..3371936a --- /dev/null +++ b/typings/lib/parser/ytmusic/Album.d.ts @@ -0,0 +1,54 @@ +export = Album; +/** @namespace */ +declare class Album { + /** + * @param {object} response - API response. + * @param {import('../../core/Actions')} actions + */ + constructor(response: object, actions: import('../../core/Actions')); + /** @type {import('../contents/classes/MusicDetailHeader')[]} */ + header: import('../contents/classes/MusicDetailHeader')[]; + /** @type {string} */ + url: string; + /** @type {import('../contents/classes/MusicResponsiveListItem')[]} */ + contents: import('../contents/classes/MusicResponsiveListItem')[]; + get page(): { + contents: any; + contents_memo: Map; + on_response_received_actions: any; + on_response_received_actions_memo: Map; + on_response_received_endpoints: any; + on_response_received_endpoints_memo: Map; + on_response_received_commands: any; + on_response_received_commands_memo: Map; + continuation_contents: any; + metadata: any; + header: any; + microformat: import("../contents/classes/PlayerMicroformat"); + sidebar: any; + overlay: any; + refinements: any; + estimated_results: any; + player_overlays: any; + playability_status: { + status: number; + error_screen: any; + embeddable: boolean; + reason: string; + }; + streaming_data: { + expires: Date; + formats: import("../contents/classes/Format")[]; + adaptive_formats: import("../contents/classes/Format")[]; + dash_manifest_url: any; + dls_manifest_url: any; + }; + captions: any; + video_details: import("../contents/classes/VideoDetails"); + annotations: any; + storyboards: any; + endscreen: import("../contents/classes/Endscreen"); + cards: import("../contents/classes/CardCollection"); + }; + #private; +}