/// <reference types="react" />
import { FormProps } from '../Form';
import { FormItemProps } from '../FormItem';
import { InputProps } from '../Input';
import { SelectCreatorProps } from '../SelectCreator';
import { CheckboxCreatorProps } from '../CheckboxCreator';
import { RadioCreatorProps } from '../RadioCreator';
import { SwitchProps } from '../Switch';
import { ButtonProps } from '../Button';
import { LayoutProps } from '../Layout';
import { InputChange } from '../../types/components';
export interface FormCreatorProps extends Omit<FormProps, 'children' | 'onChange'> {
    model: FormCreatorModel[];
    layout?: Pick<LayoutProps, 'areas' | 'columns' | 'rows' | 'gap' | 'gapX' | 'gapY'>;
    onChange?: InputChange;
}
interface FormCreatorModel extends FormItemProps, ButtonProps {
    itemId: FormItemProps['itemId'];
    component: Component;
    props?: InputProps | SelectCreatorProps | CheckboxCreatorProps | RadioCreatorProps | SwitchProps;
}
declare type Component = 'input' | 'textArea' | 'select' | 'checkbox' | 'radio' | 'switch' | 'button';
declare function FormCreator({ model, layout, onChange, ...args }: FormCreatorProps): JSX.Element;
export default FormCreator;
