import Plugin from './plugin' ; import { SearchResultsArtist , SearchResultsAlbum , SearchResultsTrack , SearchResultsPodcast , ArtistDetails , AlbumDetails } from './plugins.types' ; abstract class MetaProvider extends Plugin { sourceName : string ; searchName : string ; apiEndpoint ? : string ; abstract searchForArtists ( query ) ; abstract searchForReleases ( query ) ; abstract searchForTracks ( query ) ; abstract searchAll ( query ) ; abstract fetchArtistDetails ( artistId ) ; abstract fetchArtistDetailsByName ( artistName ) ; abstract fetchArtistAlbums ( artistId ) ; abstract fetchAlbumDetails ( albumId , albumType , resourceUrl ? ) ; abstract fetchAlbumDetailsByName ( albumName , albumType ? ) ; searchForPodcast ( query ) { return Promise . resolve ( [ ] ) ; } } export default MetaProvider ;