import type { RendererAppendCodeArgs, RendererAppendHeadingArgs, RendererAppendListArgs, RendererAppendTextArgs, RendererBeginExpandableSectionArgs, RendererEscapeTextArgs } from "./renderer.ts";
import { Renderer } from "./renderer.ts";
import { Site, type SiteBuildPagePathArgs, type SiteCreatePageArgs, type SiteHasPageArgs } from "./site.ts";
export declare abstract class MarkdownSite extends Site {
    #private;
    buildPagePath(...[slug, { appendIndex }]: SiteBuildPagePathArgs): string;
    hasPage(...[path]: SiteHasPageArgs): boolean;
    createPage(...[path]: SiteCreatePageArgs): Renderer;
    render(): Record<string, string>;
}
export declare const rendererLines: unique symbol;
export declare abstract class MarkdownRenderer extends Renderer {
    #private;
    [rendererLines]: string[];
    escapeText(...[text, { escape }]: RendererEscapeTextArgs): string;
    createHeading(...[level, text, { escape, id },]: RendererAppendHeadingArgs): string;
    appendHeading(...args: RendererAppendHeadingArgs): void;
    createText(...[text, { escape }]: RendererAppendTextArgs): string;
    appendText(...args: RendererAppendTextArgs): void;
    createCode(...[text, options]: RendererAppendCodeArgs): string;
    appendCode(...args: RendererAppendCodeArgs): void;
    createList(...[items, { escape }]: RendererAppendListArgs): string;
    appendList(...args: RendererAppendListArgs): void;
    createExpandableSectionStart(...[title, { isOpenOnLoad, escape },]: RendererBeginExpandableSectionArgs): string;
    appendExpandableSectionStart(...args: RendererBeginExpandableSectionArgs): void;
    createExpandableSectionEnd(): string;
    appendExpandableSectionEnd(): void;
    render(): string;
}
//# sourceMappingURL=markdown.d.ts.map