import { FormProps } from '@alifd/next/types/form';
import React, { Component } from 'react';
interface sourceType {
    /**渲染种类 */
    type: 'text' | 'input' | 'select' | 'radioGroup' | 'checkboxGroup' | 'datePicker' | 'numberPicker' | 'switch' | 'range' | 'upload' | 'combobox' | 'textarea' | 'cascaderSelect' | 'treeSelect' | 'custom';
    /**	组件的 props */
    props?: object;
    /**field 的 key */
    name: string;
    /**field 初始化时的参数 */
    options?: object;
    /**标签文字 */
    label: string;
    /**自定义组件 type请填写【custom】 */
    template?: React.ReactNode;
    /**Form.Item 的 props，可 */
    formItemProps?: Object;
    /**	label 上的提示气泡内容 */
    tips?: React.ReactNode;
    /**是否必填 */
    required?: boolean;
}
interface propTypes extends FormProps {
    /** 数据源 */
    source: sourceType[];
    /** 新建 field 传入的参数，如果定义了 field，则忽略此选项 */
    fieldOptions?: object;
    /** 表单提交事件 */
    handleSubmit?: Function;
    /** 表单重置事件 */
    handleReset?: Function;
    /** submit 按钮独有的表单验证事件 */
    handleSubmitError?: Function;
    /** 自定义表单按钮 */
    localButtons: any[];
    /** 是否被内嵌*/
    isNest: boolean;
    /** 是否有底部按钮 */
    footer: boolean;
    /** 初始化赋值 */
    orgData?: any;
    /** 如果每个选项都是必填，那么label上不出现**/
    allStart?: boolean;
    /** 是否内嵌*/
    nest?: number;
    /** 没有分割线*/
    noSplitLine?: boolean;
    /**footer 内容位置 */
    footerAligin?: "left" | "right" | "center";
}
interface stateType {
    source: sourceType[];
}
interface defaultType {
    source: sourceType[];
    labelAlign: string;
    autoComplete: string;
    allStart: boolean;
    fieldOptions: {
        forceUpdate: boolean;
        autoUnmount: boolean;
    };
    footer: boolean;
}
declare class IotForm extends Component<propTypes, stateType> {
    field: any;
    static defaultProps: defaultType;
    constructor(props: any);
    static getDerivedStateFromProps(nextProps: any): {
        source: any;
    } | null;
    componentDidMount(): void;
    render(): JSX.Element;
    renderButtons(localButtons: any, handleSubmitError: any, handleSubmit: any, handleReset: any): any;
    pushFormItems(source: any, allStart: any): any;
    helpLabel: (label: any, tips: any) => JSX.Element | null;
    renderFormItem(item: any, allRequire: any, fillOver: any): JSX.Element;
    updateItemStyles(type: any, props: any, fillOver: any): void;
    renderHelp(name: any): any;
}
export default IotForm;
