import type { GenericParent } from 'myst-common';
import type { Element, DeclarationAttributes } from 'xml-js';
import { type PageFrontmatter } from 'myst-frontmatter';
import type { Front, Body, Back, SubArticle, RefList, Reference, TitleGroup, ArticleTitle, Subtitle, Permissions, PubDate, License, Abstract, ContribGroup, Contrib, Affiliation, KeywordGroup, Keyword, ArticleCategories, ArticleMeta } from 'jats-tags';
import type { Logger } from 'myst-cli-utils';
import { type SerializationOptions } from 'jats-utils';
type Options = {
    log?: Logger;
    source?: string;
};
type WriteOptions = SerializationOptions & {
    bodyOnly?: boolean;
};
export declare class Jats {
    declaration?: DeclarationAttributes;
    doctype?: string;
    raw: Element;
    log?: Logger;
    tree: GenericParent;
    source?: string;
    constructor(data: string, opts?: Options);
    get frontmatter(): PageFrontmatter;
    get front(): Front | undefined;
    get articleMeta(): ArticleMeta | undefined;
    get permissions(): Permissions | undefined;
    get doi(): string | undefined;
    get pmc(): string | undefined;
    get pmid(): string | undefined;
    get publicationDates(): PubDate[];
    get publicationDate(): PubDate | undefined;
    get license(): License | undefined;
    get keywordGroup(): KeywordGroup | undefined;
    /** The first keywords */
    get keywords(): Keyword[];
    get keywordGroups(): KeywordGroup[];
    get articleCategories(): ArticleCategories | undefined;
    get titleGroup(): TitleGroup | undefined;
    get articleTitle(): ArticleTitle | undefined;
    get articleSubtitle(): Subtitle | undefined;
    get articleAltTitle(): Subtitle | undefined;
    get abstract(): Abstract | undefined;
    get abstracts(): Abstract[];
    get contribGroup(): ContribGroup | undefined;
    get contribGroups(): ContribGroup[];
    get articleAuthors(): Contrib[];
    get articleAffiliations(): Affiliation[];
    get body(): Body | undefined;
    get back(): Back | undefined;
    get subArticles(): SubArticle[];
    get refList(): RefList | undefined;
    get references(): Reference[];
    sort(): void;
    serialize(opts?: WriteOptions): string;
}
export {};
//# sourceMappingURL=jats.d.ts.map