import { FetchApi } from '@etsoo/restclient';
import { Article } from '../dto/site/Article';
import { ArticleEx } from '../dto/site/ArticleEx';
import { SiteData } from '../dto/site/SiteData';
import { Slideshow } from '../dto/site/Slideshow';
import { ArticleRQ } from '../rq/site/ArticleRQ';
import { ArticlesRQ } from '../rq/site/ArticlesRQ';
/**
 * Static Site class
 * 静态网站类
 */
export declare class StaticSite {
    /**
     * API
     * 接口调用对象
     */
    readonly api: FetchApi;
    /**
     * Constructor
     * 构造函数
     * @param apiUrl Headless CMS API Url
     * @param token Access token
     * @param scheme Scheme, default is 'ETSOOCMS', ETSOO website content management system
     */
    constructor(apiUrl: string, token: string, scheme?: string);
    /**
     * Get article
     * 读取文章
     * @param rq Request data
     * @returns Result
     */
    getArticle<T extends ArticleRQ, D = T extends {
        withContent: true;
    } ? ArticleEx : Article>(rq: T): Promise<D | undefined>;
    /**
     * Get articles
     * 读取文章列表
     * @param rq Request data
     * @returns Result
     */
    getArticles(rq: ArticlesRQ): Promise<Article[] | undefined>;
    /**
     * Get slideshow articles
     * 获取幻灯片文章
     * @returns Result
     */
    getSlideshows(): Promise<Slideshow[] | undefined>;
    /**
     * Get site data
     * 获取网站信息
     * @returns Data
     */
    getSiteData(): Promise<SiteData | undefined>;
    /**
     * Get tab article
     * 获取栏目文章
     * @param siteData Site data
     * @param tabName Tab name
     * @param tabUrl Tab URL
     * @param withContent Include article content
     * @returns Result
     */
    getTabArticle<T extends boolean>(siteData: SiteData, tabName: string, tabUrl?: string, withContent?: T): Promise<(T extends true ? ArticleEx : Article) | undefined>;
}
