import BaseAPIWithImageSupport, { type BaseAPIWithImageSupportParams } from '../common/BaseAPIWithImageSupport.js';
import { type ArticleCategorySection, type ArticleList } from '../types/Article.js';
import type Article from '../types/Article.js';
import { type ImageFormat } from '../types/Image.js';
import type Limiter from '../utils/Limiter.js';
export interface ArticleAPIGetArticleParams {
    articleUrl: string;
    albumImageFormat?: string | number | ImageFormat;
    artistImageFormat?: string | number | ImageFormat;
    includeRawData?: boolean;
}
export interface ArticleAPIListParams {
    categoryUrl?: string;
    imageFormat?: string | number | ImageFormat;
    page?: number;
}
export default class ArticleAPI extends BaseAPIWithImageSupport {
    getCategories(): Promise<ArticleCategorySection[]>;
    getArticle(params: ArticleAPIGetArticleParams): Promise<Article>;
    list(params?: ArticleAPIListParams): Promise<ArticleList>;
}
export declare class LimiterArticleAPI extends ArticleAPI {
    #private;
    constructor(params: BaseAPIWithImageSupportParams & {
        limiter: Limiter;
    });
    getCategories(): Promise<ArticleCategorySection[]>;
    getArticle(params: ArticleAPIGetArticleParams): Promise<Article>;
}
//# sourceMappingURL=ArticleAPI.d.ts.map