import { DocsBlockDefinition } from "../../model/docs/blocks/definition/SDKDocsBlockDefinition";
import { DocsBlockItemDefinition } from "../../model/docs/blocks/definition/SDKDocsBlockItemDefinition";
import { DocsBlockLayout } from "../../model/docs/blocks/definition/SDKDocsBlockLayout";
import { DocsBlockOnboarding } from "../../model/docs/blocks/definition/SDKDocsBlockOnboarding";
import { DocsBlockVariant } from "../../model/docs/blocks/definition/SDKDocsBlockVariant";
import { DocsBlockAssetPropertyDefinition, DocsBlockAssetPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockAssetProperty";
import { DocsBlockAssetPropertyPropertyDefinition, DocsBlockAssetPropertyPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockAssetPropertyProperty";
import { DocsBlockBooleanPropertyDefinition, DocsBlockBooleanPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockBooleanProperty";
import { DocsBlockCodePropertyDefinition, DocsBlockCodePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockCodeProperty";
import { DocsBlockCodeSandboxPropertyDefinition, DocsBlockCodeSandboxPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockCodeSandboxProperty";
import { DocsBlockComponentPropertyDefinition, DocsBlockComponentPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockComponentProperty";
import { DocsBlockComponentPropertyPropertyDefinition, DocsBlockComponentPropertyPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockComponentPropertyProperty";
import { DocsBlockDividerPropertyDefinition, DocsBlockDividerPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockDividerProperty";
import { DocsBlockEmbedUrlPropertyDefinition, DocsBlockEmbedUrlPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockEmbedUrlProperty";
import { DocsBlockFigmaComponentPropertyDefinition, DocsBlockFigmaComponentPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockFigmaComponentProperty";
import { DocsBlockFigmaNodePropertyDefinition, DocsBlockFigmaNodePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockFigmaNodeProperty";
import { DocsBlockFilePropertyDefinition, DocsBlockFilePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockFileProperty";
import { DocsBlockImagePropertyDefinition, DocsBlockImagePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockImageProperty";
import { DocsBlockMarkdownPropertyDefinition, DocsBlockMarkdownPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockMarkdownProperty";
import { DocsBlockMultiRichTextPropertyDefinition, DocsBlockMultiRichTextPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockMultiRichTextProperty";
import { DocsBlockMultiSelectPropertyDefinition, DocsBlockMultiSelectPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockMultiSelectProperty";
import { DocsBlockNumberPropertyDefinition, DocsBlockNumberPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockNumberProperty";
import { DocsBlockItemPropertyAnyDefinition } from "../../model/docs/blocks/properties/SDKDocsBlockProperty";
import { DocsBlockRichTextEditorPropertyDefinition, DocsBlockRichTextEditorPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockRichTextEditorProperty";
import { DocsBlockRichTextPropertyDefinition, DocsBlockRichTextPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockRichTextProperty";
import { DocsBlockSingleSelectPropertyDefinition, DocsBlockSingleSelectPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockSingleSelectProperty";
import { DocsBlockStorybookPropertyDefinition, DocsBlockStorybookPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockStorybookProperty";
import { DocsBlockTablePropertyDefinition, DocsBlockTablePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockTableProperty";
import { DocsBlockTextPropertyDefinition, DocsBlockTextPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockTextProperty";
import { DocsBlockTokenPropertyDefinition, DocsBlockTokenPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockTokenProperty";
import { DocsBlockTokenPropertyPropertyDefinition, DocsBlockTokenPropertyPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockTokenPropertyProperty";
import { DocsBlockTokenTypePropertyDefinition, DocsBlockTokenTypePropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockTokenTypeProperty";
import { DocsBlockUrlPropertyDefinition, DocsBlockUrlPropertyOptions } from "../../model/docs/blocks/properties/SDKDocsBlockUrlProperty";
import { DocsBlockBehaviorDataType } from "../../model/enums/SDKDocsBlockBehaviorDataType";
import { DocsBlockBehaviorSelectionType } from "../../model/enums/SDKDocsBlockBehaviorSelectionType";
import { DocsBlockCategory } from "../../model/enums/SDKDocsBlockCategory";
import { DocsBlockItemVariantLayoutAlign } from "../../model/enums/SDKDocsBlockItemVariantLayoutAlign";
import { DocsBlockItemVariantLayoutColumnResizing } from "../../model/enums/SDKDocsBlockItemVariantLayoutColumnResizing";
import { DocsBlockItemVariantLayoutGap } from "../../model/enums/SDKDocsBlockItemVariantLayoutGap";
export declare class DocsBlockBuilder {
    /** Create a layout definition with selected properties (or sublayouts) stacked into column */
    columnLayout(children: Array<DocsBlockItemPropertyAnyDefinition | DocsBlockLayout>, options?: {
        resizing?: DocsBlockItemVariantLayoutColumnResizing | undefined;
        align?: DocsBlockItemVariantLayoutAlign | undefined;
        gap?: DocsBlockItemVariantLayoutGap | undefined;
    }): DocsBlockLayout;
    /** Create a layout definition with selected properties (or sublayouts) stacked into row */
    rowLayout(children: Array<DocsBlockItemPropertyAnyDefinition | DocsBlockLayout>, options?: {
        gap?: DocsBlockItemVariantLayoutGap | undefined;
    }): DocsBlockLayout;
    /** Create an item variant to render the item in a specific way */
    variantUsingCustomLayout(options: {
        id: string;
        name: string;
        image: string;
        layout: DocsBlockLayout;
        description?: string;
        defaultColumns?: number;
        maxColumns?: number;
    }): DocsBlockVariant;
    /** Create and item variant to render the item with default layout (all properties will be stacked into a single column) */
    variantUsingDefaultLayout(options: {
        id: string;
        name: string;
        image: string;
        properties: Array<DocsBlockItemPropertyAnyDefinition>;
        description?: string;
        maxColumns?: number;
        defaultColumns?: number;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
            isEditorPresentationDifferent?: boolean;
            showBlockHeaderInEditor?: boolean;
        };
    }): DocsBlockVariant;
    /** Create and item variant to render the item with default layout (all properties will be stacked into a single column) */
    defaultVariantUsingDefaultLayout(options: {
        properties: Array<DocsBlockItemPropertyAnyDefinition>;
        name?: string;
        image?: string;
        description?: string;
        maxColumns?: number;
        defaultColumns?: number;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
            isEditorPresentationDifferent?: boolean;
            /** When enabled, the header with block name, description, and header will be displayed
             * Use only for custom blocks that don't have a good content do be displayed in the editor (e.g. Release notes, Lottie, etc.)
             * */
            showBlockHeaderInEditor?: boolean;
        };
    }): DocsBlockVariant;
    /** Create block item with a single variant of rendering */
    singleVariantItem(configuration: {
        properties: Array<DocsBlockItemPropertyAnyDefinition>;
        variant: DocsBlockVariant;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
        };
    }): DocsBlockItemDefinition;
    /** Create block item with multiple variants of rendering. The first variant becomes the default one */
    multiVariantItem(configuration: {
        properties: Array<DocsBlockItemPropertyAnyDefinition>;
        variants: Array<DocsBlockVariant>;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
        };
    }): DocsBlockItemDefinition;
    /** Creates a core block definition which can't select from Supernova data, and its item can only be created once (Examples: Rich Text, Callout, Heading blocks) */
    singleItemBlock(configuration: {
        id: string;
        name: string;
        category: DocsBlockCategory;
        icon: string;
        description?: string;
        item: DocsBlockItemDefinition;
        linkable?: boolean;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
            isEditorPresentationDifferent?: boolean;
            showBlockHeaderInEditor?: boolean;
        };
        searchKeywords?: Array<string>;
        onboarding?: DocsBlockOnboarding;
    }): DocsBlockDefinition;
    /** Creates a core block definition which can't select from Supernova data, and its items can be created multiple times (Examples: Shortcuts block) */
    multiItemBlock(configuration: {
        id: string;
        name: string;
        category: DocsBlockCategory;
        icon: string;
        item: DocsBlockItemDefinition;
        maxItems?: number;
        description?: string;
        options?: {
            linkable?: boolean;
            newItemLabel?: string;
        };
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
            isEditorPresentationDifferent?: boolean;
            showBlockHeaderInEditor?: boolean;
        };
        searchKeywords?: Array<string>;
        onboarding?: DocsBlockOnboarding;
    }): DocsBlockDefinition;
    /** Creates a core block definition which will be allowed to select from Supernova data (Examples: Token, Asset block) */
    dataBlock(configuration: {
        id: string;
        name: string;
        icon: string;
        category: DocsBlockCategory;
        item: DocsBlockItemDefinition;
        dataType: Exclude<DocsBlockBehaviorDataType, DocsBlockBehaviorDataType.item>;
        selectionType: DocsBlockBehaviorSelectionType;
        maxSelection?: number;
        description?: string;
        linkable?: boolean;
        appearance?: {
            isBordered?: boolean;
            hasBackground?: boolean;
            isEditorPresentationDifferent?: boolean;
            showBlockHeaderInEditor?: boolean;
        };
        searchKeywords?: Array<string>;
        onboarding?: DocsBlockOnboarding;
    }): DocsBlockDefinition;
    /** Creates onboarding entity */
    onboarding(configuration: {
        helpText: string;
        documentationLink?: string;
    }): DocsBlockOnboarding;
    /** Create a block property with type .text and its specific options */
    textProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockTextPropertyOptions;
        variants?: Record<string, DocsBlockTextPropertyOptions>;
    }): DocsBlockTextPropertyDefinition;
    /** Create a block property with type .richText and its specific options */
    richTextProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockRichTextPropertyOptions;
        variants?: Record<string, DocsBlockRichTextPropertyOptions>;
    }): DocsBlockRichTextPropertyDefinition;
    /** Create a block property with type .multiRichText and its specific options */
    multiRichTextProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockMultiRichTextPropertyOptions;
        variants?: Record<string, DocsBlockMultiRichTextPropertyOptions>;
    }): DocsBlockMultiRichTextPropertyDefinition;
    /** Create a block property with type .multiRichText and its specific options */
    richTextEditorProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockRichTextEditorPropertyOptions;
        variants?: Record<string, DocsBlockRichTextEditorPropertyOptions>;
    }): DocsBlockRichTextEditorPropertyDefinition;
    /** Create a block property with type .boolean and its specific options */
    booleanProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockBooleanPropertyOptions;
        variants?: Record<string, DocsBlockBooleanPropertyOptions>;
    }): DocsBlockBooleanPropertyDefinition;
    /** Create a block property with type .number and its specific options */
    numericProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockNumberPropertyOptions;
        variants?: Record<string, DocsBlockNumberPropertyOptions>;
    }): DocsBlockNumberPropertyDefinition;
    /** Create a block property with type .singleSelect and its specific options */
    singleSelectProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockSingleSelectPropertyOptions;
        variants?: Record<string, DocsBlockSingleSelectPropertyOptions>;
    }): DocsBlockSingleSelectPropertyDefinition;
    /** Create a block property with type .multiSelect and its specific options */
    multiSelectProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockMultiSelectPropertyOptions;
        variants?: Record<string, DocsBlockMultiSelectPropertyOptions>;
    }): DocsBlockMultiSelectPropertyDefinition;
    /** Create a block property with type .image and its specific options */
    imageProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options?: DocsBlockImagePropertyOptions;
        variants?: Record<string, DocsBlockImagePropertyOptions>;
    }): DocsBlockImagePropertyDefinition;
    /** Create a block property with type .token and its specific options */
    tokenProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockTokenPropertyOptions;
        variants?: Record<string, DocsBlockTokenPropertyOptions>;
    }): DocsBlockTokenPropertyDefinition;
    /** Create a block property with type .tokenType and its specific options */
    tokenTypeProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockTokenTypePropertyOptions;
        variants?: Record<string, DocsBlockTokenTypePropertyOptions>;
    }): DocsBlockTokenTypePropertyDefinition;
    /** Create a block property with type .tokenProperty and its specific options */
    tokenPropertyProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockTokenPropertyPropertyOptions;
        variants?: Record<string, DocsBlockTokenPropertyPropertyOptions>;
    }): DocsBlockTokenPropertyPropertyDefinition;
    /** Create a block property with type .component and its specific options */
    componentProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockComponentPropertyOptions;
        variants?: Record<string, DocsBlockComponentPropertyOptions>;
    }): DocsBlockComponentPropertyDefinition;
    /** Create a block property with type .componentProperty and its specific options */
    componentPropertyProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockComponentPropertyPropertyOptions;
        variants?: Record<string, DocsBlockComponentPropertyPropertyOptions>;
    }): DocsBlockComponentPropertyPropertyDefinition;
    /** Create a block property with type .figmaComponentProperty and its specific options */
    figmaComponentProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockFigmaComponentPropertyOptions;
        variants?: Record<string, DocsBlockFigmaComponentPropertyOptions>;
    }): DocsBlockFigmaComponentPropertyDefinition;
    /** Create a block property with type .asset and its specific options */
    assetProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockAssetPropertyOptions;
        variants?: Record<string, DocsBlockAssetPropertyOptions>;
    }): DocsBlockAssetPropertyDefinition;
    /** Create a block property with type .figmaNodeProperty and its specific options */
    figmaNodeProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockFigmaNodePropertyOptions;
        variants?: Record<string, DocsBlockFigmaNodePropertyOptions>;
    }): DocsBlockFigmaNodePropertyDefinition;
    /** Create a block property with type .assetProperty and its specific options */
    assetPropertyProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockAssetPropertyPropertyOptions;
        variants?: Record<string, DocsBlockAssetPropertyPropertyOptions>;
    }): DocsBlockAssetPropertyPropertyDefinition;
    /** Create a block property with type .embedURL and its specific options */
    embedUrlProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockEmbedUrlPropertyOptions;
        variants?: Record<string, DocsBlockEmbedUrlPropertyOptions>;
    }): DocsBlockEmbedUrlPropertyDefinition;
    /** Create a block property with type .markdown and its specific options */
    markdownProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockMarkdownPropertyOptions;
        variants?: Record<string, DocsBlockMarkdownPropertyOptions>;
    }): DocsBlockMarkdownPropertyDefinition;
    /** Create a block property with type .url and its specific options */
    urlProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockUrlPropertyOptions;
        variants?: Record<string, DocsBlockUrlPropertyOptions>;
    }): DocsBlockUrlPropertyDefinition;
    /** Create a block property with type .storybook and its specific options */
    storybookProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockStorybookPropertyOptions;
        variants?: Record<string, DocsBlockStorybookPropertyOptions>;
    }): DocsBlockStorybookPropertyDefinition;
    /** Create a block property with type .code and its specific options */
    codeProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockCodePropertyOptions;
        variants?: Record<string, DocsBlockCodePropertyOptions>;
    }): DocsBlockCodePropertyDefinition;
    /** Create a block property with type .codeSandbox and its specific options */
    codeSandboxProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockCodeSandboxPropertyOptions;
        variants?: Record<string, DocsBlockCodeSandboxPropertyOptions>;
    }): DocsBlockCodeSandboxPropertyDefinition;
    /** Create a block property with type .table and its specific options */
    tableProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockTablePropertyOptions;
        variants?: Record<string, DocsBlockTablePropertyOptions>;
    }): DocsBlockTablePropertyDefinition;
    /** Create a block property with type .divider and its specific options */
    dividerProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockDividerPropertyOptions;
        variants?: Record<string, DocsBlockDividerPropertyOptions>;
    }): DocsBlockDividerPropertyDefinition;
    /** Create a block property with type .file and its specific options */
    fileProperty(configuration: {
        id: string;
        name: string;
        description?: string;
        options: DocsBlockFilePropertyOptions;
        variants?: Record<string, DocsBlockFilePropertyOptions>;
    }): DocsBlockFilePropertyDefinition;
}
