xref: /MusicFree/src/types/plugin.d.ts (revision bf6e62f27bf21a011995d7561e0093fae1a2d72e)
1declare namespace IPlugin {
2  export interface IPlayResult {
3    headers?: Record<string, string>;
4    url: string;
5  }
6
7  export interface ISearchResult {
8    // 可能还有歌手页等等
9    // artist?: Artist
10    music?: Array<IMusic.IMusicItem>;
11    album?: Array<IAlbum.IAlbumItem>;
12  }
13
14  export type ISearchResultType = ICommon.SupportMediaType;
15
16  export interface IPluginInstance {
17    /** 来源名 */
18    platform: string;
19    playMusic?: (musicItem: MusicItemBase) => Promise<IPlayResult | null>;
20    search?: (keyword: string, page?: number) => Promise<ISearchResult>;
21    getAlbumInfo?: (albumItem: IAlbum.IAlbumItem) => Promise<IMusic.IMusicItem[] | null>;
22  }
23}
24