import { Item } from '@pkg/md/parser/item';
import { MarkdownRenderer, Shortcode } from "@internal/domain/markdown";
import { MediaType } from '@pkg/media/type';
export interface ContentReplacement {
    val: Uint8Array;
    source: Item;
}
export type ContentItem = Item | Shortcode | ContentReplacement;
export declare const INTERNAL_SUMMARY_DIVIDER_BASE = "HUGOMORE42";
export declare const INTERNAL_SUMMARY_DIVIDER_PRE: NodeJS.NonSharedUint8Array;
export declare class Content {
    private hasSummaryDivider;
    private summaryTruncated;
    private rawSource;
    private items;
    private renderer;
    constructor(source: Uint8Array, renderer: MarkdownRenderer);
    isEmpty(): boolean;
    setSummaryDivider(): void;
    getHasSummaryDivider(): boolean;
    setSummaryTruncated(): void;
    getTruncated(): boolean;
    addReplacement(val: Uint8Array, source: Item): void;
    addShortcode(shortcode: Shortcode): void;
    addItem(item: Item): void;
    addItems(...items: Item[]): void;
    rawContent(): string;
    pureContent(): string;
    pureContentWithoutPlaceholder(): string;
    renderedContent(shortcodeRenderer?: (shortcode: Shortcode) => string): string;
    renderedContentAsync(shortcodeRenderer?: (shortcode: Shortcode) => Promise<string> | string): Promise<string>;
    getItems(): ContentItem[];
    getShortcodes(): Shortcode[];
    getTextItems(): Item[];
    getReplacements(): ContentReplacement[];
    extractSummary(input: Uint8Array, mediaType: MediaType): {
        summary: string;
        truncated: boolean;
    };
    private extractSummaryFromHTML;
    private containsCJK;
    private isProbablyHTMLToken;
    private stripHTML;
    private trimShortHTML;
    cleanDividerPlaceholders(htmlContent: string): string;
    getDividedSummary(htmlContent: string): string;
    getRenderedSummary(htmlContent?: string, maxLength?: number): Promise<string>;
    getWordCount(): number;
    getReadingTime(wordsPerMinute?: number): number;
    private isItem;
    private isShortcode;
    private isContentReplacement;
}
