import type { Chunk } from "@speakeasy-api/docs-md-shared/types";
import type { PageMetadata, PropertyAnnotations } from "@speakeasy-api/docs-md-shared/types";
import type { Context, RendererAlreadyInContextArgs, RendererConstructorArgs, RendererCreateCodeArgs, RendererCreateContextArgs, RendererCreateDebugPlaceholderArgs, RendererCreateExpandableBreakoutArgs, RendererCreateExpandablePropertyArgs, RendererCreateFrontMatterDisplayTypeArgs, RendererCreateHeadingArgs, RendererCreateListArgs, RendererCreateOperationArgs, RendererCreateParametersSectionArgs, RendererCreatePillArgs, RendererCreateRequestSectionArgs, RendererCreateResponsesArgs, RendererCreateSectionArgs, RendererCreateSectionContentArgs, RendererCreateSectionTitleArgs, RendererCreateSecuritySectionArgs, RendererCreateTabbedSectionArgs, RendererCreateTabbedSectionTabArgs, RendererCreateTextArgs, RendererGetCurrentIdArgs, SiteBuildPagePathArgs, SiteCreatePageArgs, SiteHasPageArgs } from "./base.ts";
import { Renderer } from "./base.ts";
import { Site } from "./base.ts";
export declare abstract class MarkdownSite extends Site {
    #private;
    setDocsData(docsData: Map<string, Chunk>): void;
    buildPagePath(...[slug, { appendIndex }]: SiteBuildPagePathArgs): string;
    hasPage(...[path]: SiteHasPageArgs): boolean;
    createPage(...[path, slug, frontMatter]: SiteCreatePageArgs): Renderer;
    render(): Record<string, string>;
    processPageMetadata(_pageMetadata: PageMetadata[]): void;
}
export declare abstract class MarkdownRenderer extends Renderer {
    #private;
    constructor({ docsData, site, currentPageSlug, frontMatter, }: RendererConstructorArgs);
    protected getSite(): Site;
    createOperationSection(...[{ method, path, operationId, summary, description }, cb,]: RendererCreateOperationArgs): void;
    protected createTopLevelSection({ title, annotations, }: {
        title: string;
        annotations?: PropertyAnnotations[];
    }, cb: () => void): void;
    createSecuritySection(...[cb]: RendererCreateSecuritySectionArgs): void;
    protected handleCreateOperationTitle(cb: () => void): void;
    protected handleCreateOperationSummary(cb: () => void): void;
    protected handleCreateOperationDescription(cb: () => void): void;
    protected handleCreateSecurity(cb: () => void): void;
    createParametersSection(...[cb]: RendererCreateParametersSectionArgs): void;
    protected handleCreateParameters(cb: () => void): void;
    createRequestSection(...[{ isOptional, createDisplayType, createDescription, createExamples, createDefaultValue, createBreakouts, },]: RendererCreateRequestSectionArgs): void;
    createResponsesSection(...[cb, { title }]: RendererCreateResponsesArgs): void;
    protected handleCreateRequestDisplayType(cb: () => void): void;
    protected handleCreateRequestDescription(cb: () => void): void;
    protected handleCreateRequestExamples(cb: () => void): void;
    protected handleCreateRequestDefaultValue(cb: () => void): void;
    protected handleCreateResponseDisplayType(cb: () => void): void;
    protected handleCreateResponseDescription(cb: () => void): void;
    protected handleCreateResponseExamples(cb: () => void): void;
    protected handleCreateResponseDefaultValue(cb: () => void): void;
    protected handleCreateBreakouts(cb: () => void): void;
    createExpandableBreakout(...[props]: RendererCreateExpandableBreakoutArgs): void;
    protected handleCreateExpandableBreakout(...[{ createTitle, createDescription, createExamples, createDefaultValue },]: RendererCreateExpandableBreakoutArgs): void;
    createExpandableProperty(...[props]: RendererCreateExpandablePropertyArgs): void;
    protected handleCreateExpandableProperty(...[{ rawTitle, typeInfo, annotations, createDescription, createExamples, createDefaultValue, },]: RendererCreateExpandablePropertyArgs): void;
    createFrontMatterDisplayType(...[{ typeInfo }]: RendererCreateFrontMatterDisplayTypeArgs): void;
    createHeading(...[level, text, { escape, id, append },]: RendererCreateHeadingArgs): string;
    createText(...[text, { escape, append }]: RendererCreateTextArgs): string;
    createCode(...[text, options]: RendererCreateCodeArgs): string;
    createList(...[items, { escape, append },]: RendererCreateListArgs): string;
    createPill(...[_variant, cb, { append }]: RendererCreatePillArgs): string;
    createSection(...[cb]: RendererCreateSectionArgs): void;
    createSectionTitle(...[cb]: RendererCreateSectionTitleArgs): void;
    createSectionContent(...[cb]: RendererCreateSectionContentArgs): void;
    protected createTabbedSection(...[cb]: RendererCreateTabbedSectionArgs): void;
    protected createTabbedSectionTab(...[cb]: RendererCreateTabbedSectionTabArgs): void;
    createDebugPlaceholder(...[cb]: RendererCreateDebugPlaceholderArgs): void;
    enterContext(...[context]: RendererCreateContextArgs): void;
    exitContext(): void;
    getCurrentId(...[postFixId]: RendererGetCurrentIdArgs): string;
    protected getIdSeparator(): string;
    protected getContextStack(): Context[];
    getCurrentContextType(): "operation" | "schema" | "section";
    getSchemaDepth(): number;
    alreadyInContext(...[id]: RendererAlreadyInContextArgs): boolean;
    getDocsData(): Map<string, Chunk>;
    protected appendLine(line: string | null): void;
    render(): {
        contents: string;
        metadata: PageMetadata | undefined;
    };
}
//# sourceMappingURL=markdown.d.ts.map