UNPKG

bandcamp-fetch

Version:
63 lines 3.36 kB
import { type FanItemsContinuation } from '../types/Fan.js'; import type Fan from '../types/Fan.js'; import { type ImageFormat } from '../types/Image.js'; import { FanContinuationItemsResult, type FanItemParseOptions, FanPageItemsResult } from './FanItemsBaseParser.js'; import type Album from '../types/Album.js'; import type Track from '../types/Track.js'; import type UserKind from '../types/UserKind.js'; import type Tag from '../types/Tag.js'; import type Limiter from '../utils/Limiter.js'; import BaseAPIWithImageSupport, { type BaseAPIWithImageSupportParams } from '../common/BaseAPIWithImageSupport.js'; export { FanPageItemsResult, FanContinuationItemsResult }; export interface FanAPIGetInfoParams { username?: string; imageFormat: string | number | ImageFormat; } export interface FanAPIGetItemsParams { target?: string | FanItemsContinuation; imageFormat?: string | number | ImageFormat; } /** * @internal */ export interface FanAPIGetItemsFullParams<T> extends FanAPIGetItemsParams { defaultImageFormat: number; continuationUrl?: string; parsePageFn: (html: string, opts: FanItemParseOptions) => FanPageItemsResult<T>; parseContinuationFn: (json: any, continuation: FanItemsContinuation, opts: FanItemParseOptions) => FanContinuationItemsResult<T>; } export default class FanAPI extends BaseAPIWithImageSupport { getInfo(params: FanAPIGetInfoParams): Promise<Fan>; getCollection(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<NonNullable<Track | Album | null>> | FanContinuationItemsResult<NonNullable<Track | Album | null>>>; getWishlist(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<NonNullable<Track | Album | null>> | FanContinuationItemsResult<NonNullable<Track | Album | null>>>; getFollowingArtistsAndLabels(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<UserKind> | FanContinuationItemsResult<UserKind>>; getFollowingGenres(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<Tag> | FanContinuationItemsResult<Tag>>; /** * @internal */ protected getItems<T>(params: FanAPIGetItemsFullParams<T>): Promise<FanPageItemsResult<T> | FanContinuationItemsResult<T>>; /** * @internal */ protected static getFanPageUrl(username: string): string; /** * @internal */ protected static isContinuation(target: any): target is FanItemsContinuation; /** * @internal */ protected getLoggedInFanUsername(): Promise<string>; } export declare class LimiterFanAPI extends FanAPI { #private; constructor(params: BaseAPIWithImageSupportParams & { limiter: Limiter; }); getInfo(params: FanAPIGetInfoParams): Promise<Fan>; getCollection(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<NonNullable<Album | Track | null>> | FanContinuationItemsResult<NonNullable<Album | Track | null>>>; getWishlist(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<NonNullable<Album | Track | null>> | FanContinuationItemsResult<NonNullable<Album | Track | null>>>; getFollowingArtistsAndLabels(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<UserKind> | FanContinuationItemsResult<UserKind>>; getFollowingGenres(params: FanAPIGetItemsParams): Promise<FanPageItemsResult<Tag> | FanContinuationItemsResult<Tag>>; } //# sourceMappingURL=FanAPI.d.ts.map