import { PageBlockDefinition } from "@supernova-studio/model";
import { DocsBlockMode } from "../../../enums/SDKDocBlockMode";
import { DocsBlockCategory } from "../../../enums/SDKDocsBlockCategory";
import { DocsBlockBehavior } from "./SDKDocsBlockBehavior";
import { DocsBlockItemDefinition } from "./SDKDocsBlockItemDefinition";
import { DocsBlockOnboarding } from "./SDKDocsBlockOnboarding";
export type DocsBlockDefinitionModel = PageBlockDefinition;
export declare class DocsBlockDefinition {
    /** Unique id of the block. Block id must be unique across all blocks registered to Supernova in preparation for block store. Reserved ids will be created for all core blocks and they'll be installed by default to every exporter */
    id: string;
    /** Defines the name of the block */
    name: string;
    /** Describes the block in more detail */
    description: string;
    /** Block category */
    category: DocsBlockCategory;
    /** Block icon filename */
    icon: string | null;
    /** Link to documentation or resource explaining the behavior of the block and its options */
    documentationLink: string | null;
    searchKeywords: Array<string>;
    /** Primary definition of the block. See DocsBlockItemDefinition for more information */
    item: DocsBlockItemDefinition;
    /** Primary definition of the layered block behavior. See Block Behaviors for more information */
    behavior: DocsBlockBehavior;
    /** Top-level editor options for the block itself (but not for its items). This configuration has no bearing on front-end side of rendering and is only for editor */
    editorOptions: {
        /** When provided, the first time block is used (for every user individually), onboarding layer will show up for that block, explaining what it is. */
        onboarding: DocsBlockOnboarding | null;
        /** When provided, it will be used for adding a new item to the block */
        newItemLabel: string | null;
    };
    /** All appearance options for top-level block wrapper */
    appearance: {
        /** With border enabled, a light border will be rendered in editor around the block. For example, rich text have this disabled as it is just a text */
        isBordered: boolean;
        /** When background option is enabled, background color can be set for the block */
        hasBackground: boolean;
        /** When editor presentation is different, the block will render differently in editor than in the final output */
        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;
    };
    constructor(model: DocsBlockDefinitionModel);
    get blockMode(): DocsBlockMode;
    toRemote(): DocsBlockDefinitionModel;
}
