export interface SpotifyArtist { external_urls: { spotify: string; }; href: string; id: string; name: string; type: string; uri: string; } export interface SpotifyAlbum { album_type: string; total_tracks: number; available_markets: string[]; external_urls: { spotify: string; }; href: string; id: string; images: Array<{ url: string; height: number; width: number; }>; name: string; release_date: string; release_date_precision: string; type: string; uri: string; artists: SpotifyArtist[]; is_playable?: boolean; } export interface SpotifyTrack { album: SpotifyAlbum; artists: SpotifyArtist[]; available_markets: string[]; disc_number: number; duration_ms: number; explicit: boolean; external_ids: { isrc?: string; }; external_urls: { spotify: string; }; href: string; id: string; is_playable?: boolean; name: string; popularity: number; preview_url: string | null; track_number: number; type: string; uri: string; is_local: boolean; } export interface SpotifySearchResponse { tracks: { href: string; limit: number; next: string | null; offset: number; previous: string | null; total: number; items: SpotifyTrack[]; }; } export interface SearchResultTrack { id: string; name: string; artists: Array<{ id: string; name: string; spotify_url: string; }>; album: { id: string; name: string; release_date: string; images: Array<{ url: string; height: number; width: number; }>; spotify_url: string; }; duration_ms: number; popularity: number; preview_url: string | null; spotify_url: string; explicit: boolean; available_markets: string[]; }