import { Area } from "../../common";
import { BaseArticleSummary } from "../article-summary";
import { Author } from "../article-summary/interfaces";
import { APIArticle, APIArticleSection, APIRecommendationSection, ArticleSection, RecommendationSection, StoreArticle } from "./interfaces";
export declare class Article extends BaseArticleSummary {
    /**
     * Article sections.
     */
    content: ArticleSection[];
    /**
     * Related recommendations sections.
     */
    recommendations: RecommendationSection[];
    constructor(slug: string, title: string, summary: string, recomemndationTitle: string, disclaimer: string, metaDescription: string, genes: string[], area: Area[], author: Author | null, publishDate: string | null, content: ArticleSection[], recommendations: RecommendationSection[]);
    static get resourceName(): string;
    static articleSectionAPIFactory(data: APIArticleSection): ArticleSection;
    static recommendationSectionAPIFactory(data: APIRecommendationSection): RecommendationSection;
    serializeRedux(): StoreArticle;
    static apiFactory(data: APIArticle): Article;
    static reduxFactory(data: StoreArticle): Article;
    /**
     * Fetch the article from the server.
     *
     * @param slug Article slug.
     */
    static get(slug: string): Promise<Article>;
}
