import { TocFragments, Header, Link, Paragraph } from '../type';
export interface Fragment {
    id: string;
    text: string;
    level: number;
    children?: Fragment[];
}
export declare class TableOfContentsImpl implements TocFragments {
    private fragments;
    constructor(fragments?: Fragment[]);
    toHTML(startLevel: number, stopLevel: number, ordered: boolean): string;
    private filterByLevel;
    private renderFragments;
    private escapeHTML;
    addFragment(fragment: Fragment): void;
    getFragments(): Fragment[];
}
export declare class HeaderImpl implements Header {
    private _name;
    private _level;
    private _links;
    private _paragraphs;
    private _listParagraphs;
    constructor(_name: string, _level: number, _links?: Link[], _paragraphs?: Paragraph[], _listParagraphs?: Paragraph[]);
    name(): string;
    level(): number;
    links(): Link[];
    paragraphs(): Paragraph[];
    listParagraphs(): Paragraph[];
    addLink(link: Link): void;
    addParagraph(paragraph: Paragraph): void;
    addListParagraph(paragraph: Paragraph): void;
}
export declare class LinkImpl implements Link {
    private _text;
    private _url;
    constructor(_text: string, _url: string);
    text(): string;
    url(): string;
}
export declare class ParagraphImpl implements Paragraph {
    private _text;
    constructor(_text: string);
    text(): string;
}
export declare class TOCBuilder {
    private fragments;
    private stack;
    addHeading(text: string, level: number, id: string): void;
    build(): TableOfContentsImpl;
    reset(): void;
}
export declare class AutoIDGenerator {
    private usedIds;
    generateID(text: string, type?: 'github' | 'github-ascii' | 'blackfriday'): string;
    private githubStyle;
    private githubAsciiStyle;
    private blackfridayStyle;
    reset(): void;
}
