import { Element } from "easy-email-pro-core";
import { ActiveTabKeys } from "easy-email-pro-editor";
import React from "react";
export type BasicFieldType = "TextField" | "NumberField" | "ColorPickerField" | "SelectField" | "SwitchField" | "SliderField" | "PixelField" | "ImageUploaderField" | "RichTextField" | "TextAreaField" | "ButtonGroupField" | "GradientGeneratorField" | "MergeTagSelectInputField" | "EditPanelListField" | "EditPanelTabsField" | "PixelAndPercentField" | "SyncChildrenField" | "FieldItem";
export type CompositeFieldType = "Typography" | "Padding" | "Border" | "BackgroundColor" | "TextAlign" | "Height" | "Width" | "Link" | "ButtonContent" | "BorderRadius" | "BackgroundImage" | "FontFamily" | "FontSize" | "Heading" | "ButtonIcon" | "Buttons" | "ImageUrl" | "VerticalAlign" | "Direction" | "DisplayOptions" | "Columns" | "BackgroundGradient" | "LetterSpacing" | "LineHeight" | "FontWeight" | "TextAndHeadingStyle" | "GlobalLink" | "ButtonCategory" | "BackgroundPosition" | "StackOnMobile" | "DividerLine" | "RTLDirection" | "TableLayout" | "Preheader" | "ImageWidth" | "TextAndHeadingList" | "WebFonts" | "PixelAndPercentField" | "SyncChildrenField" | "FieldItem";
export interface BasicFieldSchema {
    type: BasicFieldType;
    name: string;
    label?: string;
    path?: string;
    responsive?: boolean;
    options?: Array<{
        label: string;
        value: any;
    }>;
    formItem?: any;
    [key: string]: any;
}
export interface CompositeFieldSchema {
    type: CompositeFieldType;
    name?: string;
    label?: string;
    path?: string;
    responsive?: boolean;
    fieldName?: string;
    mode?: ActiveTabKeys | "desktop" | "mobile";
    elementType?: Element["type"];
    hidePadding?: boolean;
    [key: string]: any;
}
export interface CollapseGroupSchema {
    type: "CollapseGroup";
    name: string;
    header: string;
    defaultActive?: boolean;
    extra?: React.ReactNode;
    children: SchemaField[];
}
export interface ResponsiveTabsSchema {
    type: "ResponsiveTabs";
    responsive: true;
    desktop: SchemaField[];
    mobile?: SchemaField[];
}
export type SchemaField = BasicFieldSchema | CompositeFieldSchema | CollapseGroupSchema;
export type BlockSchema = SchemaField[] | ResponsiveTabsSchema;
