export enum MWMediaType { MOVIE = "movie", SERIES = "series", ANIME = "anime", } export interface MWPortableMedia { mediaId: string; mediaType: MWMediaType; providerId: string; season?: number; episode?: number; } export interface MWMedia extends MWPortableMedia { title: string; year: string; } export type MWProviderMediaResult = Omit; export interface MWQuery { searchQuery: string; type: MWMediaType; } export interface MWMediaProvider { id: string; // id of provider, must be unique enabled: boolean; type: MWMediaType[]; displayName: string; getMediaFromPortable(media: MWPortableMedia): Promise; searchForMedia(query: MWQuery): Promise; } export interface MWMassProviderOutput { providers: { id: string, success: boolean, }[]; results: MWMedia[], stats: { total: number, failed: number, succeeded: number, } }