import type NameValuePair from '../utils/NameValuePair.js'; import type Album from './Album.js'; import { type ImageFormat } from './Image.js'; import type Shirt from './Shirt.js'; import type Tag from './Tag.js'; /** * Options and list of values for each option that can be used to formulate {@link DiscoverParams}. * * @see DiscoveryAPI.getAvailableOptions */ export interface DiscoverOptions { categories: (NameValuePair & { slug: string; })[]; genres: (NameValuePair & { id: number; })[]; subgenres: Record & { id: number; })[]>; customTags: Array; sortBys: NameValuePair[]; locations: NameValuePair[]; times: (NameValuePair & { slug: string; })[]; } /** * Params used in discovery requests. * * @see DiscoveryAPI.discover */ export interface DiscoverParams { genre?: string; subgenre?: string; category?: number; sortBy?: string; location?: number; time?: number; customTags?: string[]; size?: number; /** * Value indicating the image format to adopt when constructing image URLs of discovered albums. */ albumImageFormat?: string | number | ImageFormat; /** * Value indicating the image format to adopt when constructing image URLs of album artists. */ artistImageFormat?: string | number | ImageFormat; /** * Value indicating the image format to adopt when constructing image URLs of merch items. */ merchImageFormat?: string | number | ImageFormat; } export type SanitizedDiscoverParams = Pick & Required>; /** * Results returned by {@link DiscoveryAPI.discover}. */ export interface DiscoverResult { /** * List of discovered albums . */ items: Array; /** * Total number of albums discovered. */ total: number; /** * Sanitized params used in the discovery request. */ params: SanitizedDiscoverParams; continuation?: DiscoverResultContinuation; } export interface DiscoverResultContinuation extends SanitizedDiscoverParams { cursor: string; albumImageFormat?: ImageFormat; artistImageFormat?: ImageFormat; merchImageFormat?: ImageFormat; } export interface Location extends NameValuePair { type: 'location'; } export interface TagsAndLocations { tags: Tag[]; locations: Location[]; } //# sourceMappingURL=Discovery.d.ts.map