import type { HTMLElementClassNames } from '../../types/index.js';
import type { FormFieldCheckboxProps } from './FormFieldCheckbox.vue.js';
import type { FormFieldCheckboxGroupProps } from './FormFieldCheckboxGroup.vue.js';
import type { FormFieldRadioGroupProps } from './FormFieldRadioGroup.vue.js';
import type { FormFieldSelectProps } from './FormFieldSelect.vue.js';
import type { FormFieldSelectButtonProps } from './FormFieldSelectButton.vue.js';
import type { FormFieldTextProps } from './FormFieldText.vue.js';
import type { FormFieldTextareaProps } from './FormFieldTextarea.vue.js';
import type { FormFieldToggleSwitchProps } from './FormFieldToggleSwitch.vue.js';
import type { FormFieldTurnstileProps } from './FormFieldTurnstile.vue.js';
import type { FormSubmitButtonProps } from './FormSubmitButton.vue.js';
export interface CommonOptions {
width?: 'full' | 'half';
gridCellClass?: HTMLElementClassNames;
}
export interface CheckboxField extends FormFieldCheckboxProps, CommonOptions {
fieldType: 'checkbox';
}
export interface CheckboxGroupField extends FormFieldCheckboxGroupProps, CommonOptions {
fieldType: 'checkbox-group';
}
export interface SelectField extends FormFieldSelectProps, CommonOptions {
fieldType: 'select';
}
export interface SelectButtonField extends FormFieldSelectButtonProps, CommonOptions {
fieldType: 'select-button';
}
export interface RadioGroup extends FormFieldRadioGroupProps, CommonOptions {
fieldType: 'radio';
}
export interface TextField extends FormFieldTextProps, CommonOptions {
fieldType: 'text';
}
export interface TextareaField extends FormFieldTextareaProps, CommonOptions {
fieldType: 'textarea';
}
export interface ToggleSwitchField extends FormFieldToggleSwitchProps, CommonOptions {
fieldType: 'toggle';
}
export interface TurnstileField extends FormFieldTurnstileProps, CommonOptions {
fieldType: 'turnstile';
}
export interface SubmitButton extends FormSubmitButtonProps, CommonOptions {
fieldType: 'submit';
}
export interface HeadingField {
fieldType: 'heading';
heading: string;
subheading?: string;
gridCellClass?: string;
}
export type FormFieldBuilderOption = CheckboxField | CheckboxGroupField | SelectField | SelectButtonField | RadioGroup | TextField | TextareaField | ToggleSwitchField | TurnstileField | SubmitButton | HeadingField;
export interface FormFieldBuilderProps {
fields: undefined | FormFieldBuilderOption[];
gridClass?: string;
gridCellClass?: string;
gridCellHalfClass?: string;
gridCellFullClass?: string;
variant?: 'blocks';
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: import("vue").DefineComponent & Readonly<{}>, {
variant: "blocks";
gridClass: string;
gridCellClass: string;
gridCellHalfClass: string;
gridCellFullClass: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;