import type { Chunk } from "@speakeasy-api/docs-md-shared";
import type { PageMetadata, PropertyAnnotations } from "@speakeasy-api/docs-md-shared";
import type { FrameworkConfig } from "../types/FrameworkConfig.ts";
import type { Context, RendererAlreadyInContextArgs, RendererConstructorArgs, RendererCreateCodeArgs, RendererCreateContextArgs, RendererCreateDebugPlaceholderArgs, RendererCreateEmbedArgs, RendererCreateExpandableBreakoutArgs, RendererCreateExpandablePropertyArgs, RendererCreateFrontMatterDisplayTypeArgs, RendererCreateHeadingArgs, RendererCreateListArgs, RendererCreateOperationArgs, RendererCreateParametersSectionArgs, RendererCreatePillArgs, RendererCreateRequestExamplesSectionArgs, RendererCreateRequestSectionArgs, RendererCreateResponsesArgs, RendererCreateResponsesExamplesSectionArgs, RendererCreateSectionArgs, RendererCreateSectionContentArgs, RendererCreateSectionTitleArgs, RendererCreateSecuritySectionArgs, RendererCreateTabbedSectionArgs, RendererCreateTabbedSectionTabArgs, RendererCreateTagSectionArgs, RendererCreateTextArgs, RendererGetCurrentIdArgs, RendererHasParentContextTypeArgs, SiteBuildPagePathArgs, SiteCreateEmbedArgs, SiteCreatePageArgs } from "./base.ts";
import { Renderer } from "./base.ts";
import { Site } from "./base.ts";
export declare abstract class MarkdownSite extends Site {
    protected compilerConfig: FrameworkConfig;
    protected docsData: Map<string, Chunk> | undefined;
    constructor(compilerConfig: FrameworkConfig);
    setDocsData(docsData: Map<string, Chunk>): void;
    buildPagePath(...[slug, { appendIndex }]: SiteBuildPagePathArgs): string;
    createPage(...[path, slug, frontMatter]: SiteCreatePageArgs): Renderer;
    createEmbed(..._args: SiteCreateEmbedArgs): string | undefined;
}
export declare abstract class MarkdownRenderer extends Renderer {
    #private;
    protected compilerConfig: FrameworkConfig;
    constructor({ docsData, site, currentPageSlug, currentPagePath, frontMatter, compilerConfig, }: RendererConstructorArgs);
    protected getSite(): Site;
    getPagePath(): string;
    createEmbed(..._args: RendererCreateEmbedArgs): void;
    createTagSection(...[{ title, description }]: RendererCreateTagSectionArgs): void;
    createOperationSection(...[{ tag, 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;
    createRequestExamplesSection(...[{ createExample, title }]: RendererCreateRequestExamplesSectionArgs): void;
    createRequestSection(...[{ isOptional, createDisplayType, createDescription, createBreakouts },]: RendererCreateRequestSectionArgs): void;
    createResponsesExamplesSection(...[createExample, { title }]: RendererCreateResponsesExamplesSectionArgs): void;
    createResponsesSection(...[cb, { title }]: RendererCreateResponsesArgs): void;
    protected handleCreateRequestDisplayType(cb: () => void): void;
    protected handleCreateRequestDescription(cb: () => void): void;
    protected handleCreateResponseDisplayType(cb: () => void): void;
    protected handleCreateResponseDescription(cb: () => void): void;
    protected handleCreateBreakouts(cb: () => void): void;
    createExpandableBreakout(...[props]: RendererCreateExpandableBreakoutArgs): void;
    protected handleCreateExpandableBreakout(...[{ createTitle, createDescription, createExamples, createDefaultValue, createProperties, },]: RendererCreateExpandableBreakoutArgs): void;
    createExpandableProperty(...[props]: RendererCreateExpandablePropertyArgs): void;
    protected handleCreateExpandableProperty(...[{ rawTitle, typeInfo, annotations, createDescription, createExamples, createDefaultValue, createBreakouts, },]: 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(...[{ createTitle, createExample }]: RendererCreateDebugPlaceholderArgs): void;
    enterContext(...[context]: RendererCreateContextArgs): void;
    exitContext(): void;
    getCurrentId(...[postFixId]: RendererGetCurrentIdArgs): string;
    protected getIdSeparator(): string;
    protected getContextStack(): Context[];
    getCurrentContextType(): "operation" | "section" | "schema" | "embed";
    hasParentContextType(...[type]: RendererHasParentContextTypeArgs): boolean;
    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