import { JSX } from 'react'; import { StaticImageData } from 'next/image'; import { GlobalConfig, MixedSection, Section, SectionElement } from '../state'; export type SectionWrapperProps = { editMode?: boolean; section: Section & { areaName: string; }; }; export type SectionProps = SectionWrapperProps & { globalConfig?: GlobalConfig; SectionElementWrapper?: ISectionElementWrapper; }; export type SectionElementProps = { editMode?: boolean; element: SectionElement; baseClassName?: string; section: Section & { areaName: string; }; itemIdChain?: string[]; elementIdChain: string[]; SectionElementWrapper?: ISectionElementWrapper; globalConfig?: GlobalConfig; }; export type ISectionElementWrapper = (props: SectionElementProps & { children: React.ReactNode; }) => JSX.Element; export declare enum ConfigSettingType { Array = "array", Branch = "branch", ButtonVariantPicker = "buttonVariantPicker", Boolean = "boolean", CodeCSS = "codeCss", CodeJS = "codeJs", CodeHtml = "codeHtml", ColorPicker = "colorPicker", CustomFormElementVisibility = "customFormElementVisibility", Flex = "flex", Image = "image", Media = "media", MobileImage = "mobileImage", MultiOption = "multiOption", MultiSelect = "multiSelect", MultiTextInput = "multiTextInput", Number = "number", NumberSlider = "numberSlider", RichText = "richText", Select = "select", SimpleRichText = "simpleRichText", Slider = "slider", Text = "text", Textarea = "textarea", TextInput = "textInput", Video = "video" } export type ConfigSettingProps = { configSetting: ConfigSetting; itemIdChain?: string[]; }; export type ConfigSetting = { label: string; description?: string; type: ConfigSettingType; defaultValue?: string; field: string; options?: ConfigOption[]; configSettings?: ConfigSetting[]; sliderConfig?: SliderConfig; trueLabel?: string; falseLabel?: string; fixedSize?: boolean; placeholder?: string; defaultArrayItem?: MixedSection; itemLabel?: string; }; export type ConfigOption = { label: string; value: string; disabled?: boolean; }; export type SliderConfig = { min: number; max: number; step: number; defaultValue?: number; }; export type ItemsSchema = { limit: number; items?: ItemsSchema; }; export type SerializableSectionSchema = { label: string; description: string; previewImage?: StaticImageData; configSettings: ConfigSetting[]; items?: ItemsSchema; /** Settings specific to a given variant */ variantSettings?: { [key: string]: ConfigSetting[]; }; variantDescriptions?: { [variantName: string]: string; }; }; export type SectionSchema) => JSX.Element> = SerializableSectionSchema & { icon: () => React.ReactNode; clientComponent: C; initialConfig: () => T; settingsSummary?: (agencyData: { subdomain?: string; }) => React.ReactNode; variantItemSettings?: { [key: string]: ConfigSetting[]; }; itemSettings?: ConfigSetting[]; }; //# sourceMappingURL=sections.types.d.ts.map