import { Supernova } from "../../core/SDKSupernova";
import { DocumentationLegacyGroup } from "../../model/documentation/SDKDocumentationLegacyGroup";
import { DocumentationLegacyPage } from "../../model/documentation/SDKDocumentationLegacyPage";
import { DocumentationLegacyPageBlock } from "../../model/documentation/SDKDocumentationLegacyPageBlock";
import { DocumentationLegacyPageBlockAssets } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockAssets";
import { DocumentationLegacyPageBlockCallout } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockCallout";
import { DocumentationLegacyPageBlockCode } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockCode";
import { DocumentationLegacyPageBlockColumn } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockColumn";
import { DocumentationLegacyPageBlockColumnItem } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockColumnItem";
import { DocumentationLegacyPageBlockEmbedFigma } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockEmbedFigma";
import { DocumentationLegacyPageBlockEmbedGeneric } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockEmbedGeneric";
import { DocumentationLegacyPageBlockEmbedLink } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockEmbedLink";
import { DocumentationLegacyPageBlockEmbedStorybook } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockEmbedStorybook";
import { DocumentationLegacyPageBlockEmbedYoutube } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockEmbedYoutube";
import { DocumentationLegacyPageBlockFigmaComponentPropsTable } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockFigmaComponentPropsTable";
import { DocumentationLegacyPageBlockFiles } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockFiles";
import { DocumentationLegacyPageBlockFrames } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockFrames";
import { DocumentationLegacyPageBlockGuidelines } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockGuidelines";
import { DocumentationLegacyPageBlockHeading } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockHeading";
import { DocumentationLegacyPageBlockImage } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockImage";
import { DocumentationLegacyPageOrderedList } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockOrderedList";
import { DocumentationLegacyPageBlockQuote } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockQuote";
import { DocumentationLegacyPageBlockRenderCode } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockRenderCode";
import { DocumentationLegacyPageBlockShortcuts } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockShortcuts";
import { DocumentationLegacyPageBlockTab } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTab";
import { DocumentationLegacyPageBlockTabItem } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTabItem";
import { DocumentationLegacyPageBlockTable } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTable";
import { DocumentationLegacyPageBlockTableCell } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTableCell";
import { DocumentationLegacyPageBlockText } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockText";
import { DocumentationLegacyPageBlockToken } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockToken";
import { DocumentationLegacyPageBlockTokenGroup } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTokenGroup";
import { DocumentationLegacyPageBlockTokenList } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockTokenList";
import { DocumentationLegacyPageUnorderedList } from "../../model/documentation/blocks/SDKDocumentationLegacyPageBlockUnorderedList";
import { MarkdownTransformType } from "./SDKToolsMarkdownTransform";
export type MarkdownTransformConfiguration = {
    insideTable: boolean;
};
export type MarkdownTransformBlockConfig = {
    urlType?: "relative-to-markdown" | "deployed";
    documentationData?: {
        rootGroup: DocumentationLegacyGroup;
        allPages: Array<DocumentationLegacyPage>;
        allGroups: Array<DocumentationLegacyGroup>;
    };
};
/** Markdown block transformer */
export declare class MarkdownTransformBlock {
    private transformType;
    private utilTransformer;
    private linkResolver;
    private instance;
    private designSystemId;
    private versionId;
    private workspaceId;
    private config;
    private documentationData;
    constructor(type: MarkdownTransformType, instance: Supernova, designSystemId: string, workspaceId: string, versionId: string, config?: MarkdownTransformBlockConfig);
    /** Initialize documentation representation and link resolver - should be called once before conversion */
    initialize(): Promise<void>;
    /** Converts a single block - depending on the type - to a markdown definition of specific type */
    convertBlockToMarkdown(block: DocumentationLegacyPageBlock, pageContext: DocumentationLegacyPage, config?: MarkdownTransformConfiguration): Promise<string | null>;
    convertHeadingBlock(block: DocumentationLegacyPageBlockHeading, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertCalloutBlock(block: DocumentationLegacyPageBlockCallout, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertQuoteBlock(block: DocumentationLegacyPageBlockQuote, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertDividerBlock(): string | null;
    convertImageBlock(block: DocumentationLegacyPageBlockImage, insideTable?: boolean): string | null;
    convertOrderedListBlock(block: DocumentationLegacyPageOrderedList, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertUnorderedListBlock(block: DocumentationLegacyPageUnorderedList, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertLiveCodeBlock(block: DocumentationLegacyPageBlockRenderCode): string | null;
    convertCodeBlock(block: DocumentationLegacyPageBlockCode): string | null;
    convertTextBlock(block: DocumentationLegacyPageBlockText, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertGenericEmbedBlock(block: DocumentationLegacyPageBlockEmbedGeneric): string | null;
    convertStorybookEmbedBlock(block: DocumentationLegacyPageBlockEmbedStorybook): string | null;
    convertLinkBlock(block: DocumentationLegacyPageBlockEmbedLink): string | null;
    convertYoutubeEmbedBlock(block: DocumentationLegacyPageBlockEmbedYoutube): string | null;
    convertFigmaEmbedBlock(block: DocumentationLegacyPageBlockEmbedFigma): string | null;
    convertTokenBlock(block: DocumentationLegacyPageBlockToken): Promise<string | null>;
    convertTokenListBlock(block: DocumentationLegacyPageBlockTokenList): Promise<string | null>;
    convertTokenGroupBlock(block: DocumentationLegacyPageBlockTokenGroup): Promise<string | null>;
    private flattenedGroupsFromRoot;
    convertComponentAssetBlock(block: DocumentationLegacyPageBlockAssets): Promise<string | null>;
    convertFigmaFramesBlock(block: DocumentationLegacyPageBlockFrames): string | null;
    convertShortcutsBlock(block: DocumentationLegacyPageBlockShortcuts, pageContext: DocumentationLegacyPage): Promise<string | null>;
    private relativePathToPage;
    convertTableBlock(block: DocumentationLegacyPageBlockTable, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertTableRowBlock(): string | null;
    convertTableCellBlock(block: DocumentationLegacyPageBlockTableCell, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertTabsBlock(block: DocumentationLegacyPageBlockTab, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertTabItemBlock(block: DocumentationLegacyPageBlockTabItem, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertColumnBlock(block: DocumentationLegacyPageBlockColumn, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertColumnItemBlock(block: DocumentationLegacyPageBlockColumnItem, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertCustomBlock(): string | null;
    convertURLBlock(block: DocumentationLegacyPageBlockEmbedGeneric, userAction: string): string | null;
    convertFilesBlock(block: DocumentationLegacyPageBlockFiles): Promise<string | null>;
    convertFigmaComponentPropsTableBlock(block: DocumentationLegacyPageBlockFigmaComponentPropsTable): Promise<string | null>;
    convertGuidelinesBlock(block: DocumentationLegacyPageBlockGuidelines, pageContext: DocumentationLegacyPage): Promise<string | null>;
    convertFigmaComponentsBlock(): string;
}
