export declare enum ItemType { Artist = 0, Album = 1, Song = 2, Unknown = 3 } export declare enum AlbumCategory { StudioAlbum = 2, EP = 3, Single = 4, ArtistCollection = 11, Demo = 9, Live = 6, SoundTrack = 14, Mixtape = 8, DJMix = 10, Bootleg = 5, VariousCollection = 7, FanCollection = 13, Other = 1 } export interface Resource { url: string; } export interface Track extends Resource { id: string; url: string; title: string; duration?: number; } export interface Item extends Resource { id?: string; label: string; image?: string; type?: string; } export interface SearchResultItem extends Item { itemType: ItemType; } export interface Artist extends SearchResultItem { itemType: ItemType.Artist; } export interface Album extends SearchResultItem { albumCategory?: AlbumCategory; itemType: ItemType.Album; year?: number; } export interface Song extends SearchResultItem { itemType: ItemType.Song; } export interface SearchResult { artists: Array; albums: Array; songs: Array; } export declare const search: (term: string | null) => Promise; export declare const getArtistAlbumsList: (artist: Resource) => Promise>; export interface IGetTracksListOptions { noResolveRedirects?: boolean; } export declare const getTracksList: (resource: SearchResultItem, { noResolveRedirects }?: IGetTracksListOptions) => Promise>; export declare const resolveRedirectedTrack: (resource: Track) => Promise;