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 extends FanAPIGetItemsParams { defaultImageFormat: number; continuationUrl?: string; parsePageFn: (html: string, opts: FanItemParseOptions) => FanPageItemsResult; parseContinuationFn: (json: any, continuation: FanItemsContinuation, opts: FanItemParseOptions) => FanContinuationItemsResult; } export default class FanAPI extends BaseAPIWithImageSupport { getInfo(params?: FanAPIGetInfoParams): Promise; getCollection(params: FanAPIGetItemsParams): Promise> | FanContinuationItemsResult>>; getWishlist(params: FanAPIGetItemsParams): Promise> | FanContinuationItemsResult>>; getFollowingArtistsAndLabels(params: FanAPIGetItemsParams): Promise | FanContinuationItemsResult>; getFollowingGenres(params: FanAPIGetItemsParams): Promise | FanContinuationItemsResult>; /** * @internal */ protected getItems(params: FanAPIGetItemsFullParams): Promise | FanContinuationItemsResult>; /** * @internal */ protected static getFanPageUrl(username: string): string; /** * @internal */ protected static isContinuation(target: any): target is FanItemsContinuation; /** * @internal */ protected getLoggedInFanUsername(): Promise; } export declare class LimiterFanAPI extends FanAPI { #private; constructor(params: BaseAPIWithImageSupportParams & { limiter: Limiter; }); getInfo(params: FanAPIGetInfoParams): Promise; getCollection(params: FanAPIGetItemsParams): Promise> | FanContinuationItemsResult>>; getWishlist(params: FanAPIGetItemsParams): Promise> | FanContinuationItemsResult>>; getFollowingArtistsAndLabels(params: FanAPIGetItemsParams): Promise | FanContinuationItemsResult>; getFollowingGenres(params: FanAPIGetItemsParams): Promise | FanContinuationItemsResult>; } //# sourceMappingURL=FanAPI.d.ts.map