interface LastFmImage { size: "small" | "medium" | "large" | "extralarge"; "#text": string; } interface LastFmArtist { mbid: string; "#text": string; } interface LastFmAlbum { mbid: string; "#text": string; } interface LastFmDate { uts: string; "#text": string; } interface LastFmTrackAttr { nowplaying?: boolean; } interface LastFmTrack { artist: LastFmArtist; streamable: boolean; image: LastFmImage[]; mbid: string; album: LastFmAlbum; name: string; url: string; date: LastFmDate; "@attr"?: LastFmTrackAttr; } interface LastFmRecentTracksAttr { user: string; totalPages: string; page: string; perPage: string; total: string; } interface LastFmRecentTracks { track: LastFmTrack[]; "@attr": LastFmRecentTracksAttr; } interface LastFmApiResponse { recenttracks: LastFmRecentTracks; }