import type { Renderer, RendererConstructor } from "../../types/renderer.ts";
import type { Site } from "../../types/site.ts";
type Escape = "all" | "mdx" | "none";
type AppendOptions = {
    escape?: Escape;
};
export declare class MarkdownSite implements Site {
    #private;
    constructor(Renderer: RendererConstructor);
    buildPagePath(slug: string): string;
    hasPage(path: string): boolean;
    createPage(path: string): Renderer;
    createEmbedPage(_: string): Renderer | undefined;
    createRawPage(path: string, contents: string): void;
    finalize(): Record<string, string>;
}
export declare const rendererLines: unique symbol;
export declare class MarkdownRenderer implements Renderer {
    #private;
    [rendererLines]: string[];
    escapeText(text: string, { escape }: {
        escape: Escape;
    }): string;
    insertFrontMatter(_: {
        sidebarPosition: string;
        sidebarLabel: string;
    }): void;
    appendHeading(level: number, text: string, { escape }?: AppendOptions): void;
    appendParagraph(text: string, { escape }?: AppendOptions): void;
    appendCode(text: string): void;
    appendList(items: string[], { escape }?: AppendOptions): void;
    appendRaw(text: string): void;
    beginExpandableSection(title: string, { isOpenOnLoad, escape, }: {
        isOpenOnLoad?: boolean;
    } & AppendOptions): void;
    endExpandableSection(): void;
    appendSidebarLink(_: {
        title: string;
        embedName: string;
    }): void;
    appendTryItNow(_: {
        externalDependencies: Record<string, string>;
        defaultValue: string;
    }): void;
    finalize(): string;
}
export {};
//# sourceMappingURL=renderer.d.ts.map