import React, { Component } from 'react';
import moment from 'moment';
import PropTypes from 'prop-types';
import { RadioGroupProps } from 'antd/lib/radio';
interface DynamicAttrLocale {
    upload: string;
    clickToUpload: string;
}
interface ILayoutProps {
    id?: string;
    label?: string;
    type?: string;
    data?: object[];
    bindctrl?: string;
    rules?: object[];
    ctrlProps?: object;
    format?: string;
    addRegistry?: object;
}
interface IFormProps {
    hideRequiredMark?: boolean;
    labelAlign?: ['left' | 'right'];
    layout?: ['horizontal' | 'vertical' | 'inline'];
    formItemLayout?: object;
    colLayout?: object;
    onSubmit?: (form: any) => void;
}
interface IInitValuesProps {
    attrId?: string;
    attrValue?: string;
}
interface RegProps {
    type: string;
    getComp: () => {};
}
interface DAProps {
    form?: any;
    layout?: ILayoutProps[];
    initValues?: IInitValuesProps[];
    formProps?: IFormProps;
    onChange?: (id: string, value: string) => void;
    additionRegistry: RegProps[];
}
interface DAState {
    emailSearchResult: string[];
    popEditModalVisible: boolean;
    registry: object;
}
interface IRestProps {
    disabled?: boolean;
}
declare class DynamicAttribute extends Component<DAProps, DAState> {
    constructor(props: DAProps | Readonly<DAProps>);
    static propTypes: {
        formProps: PropTypes.Requireable<object>;
        layout: PropTypes.Requireable<any[]>;
        initValues: PropTypes.Requireable<any[]>;
    };
    static defaultProps: {
        formProps: {
            colLayout: {
                xs: number;
                sm: number;
                md: number;
                xl: number;
            };
            formItemLayout: {
                labelCol: {
                    span: number;
                };
                wrapperCol: {
                    span: number;
                };
            };
        };
        layout: never[];
        initValues: never[];
        additionRegistry: never[];
    };
    appendAddition: () => {};
    getFieldsValue: (e: Event) => {} | undefined;
    resetFields: () => void;
    judgeIfContain: (item: {
        bindctrl: any;
        data?: never[] | undefined;
    }, currentValue: string | string[], type: string) => boolean;
    handleMultiValues: (type: string, value: moment.MomentInput) => moment.MomentInput;
    handleInit: (item: {
        id?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => moment.MomentInput;
    generateSelectBefore: (data: any[], restProps: IRestProps, id: string | undefined) => any;
    generateSelectAfter: (data: any[], restProps: IRestProps, id: string | undefined) => any;
    renderOptions: (item: {
        bindctrl: any;
        data: any;
        id?: any;
        type?: any;
    }) => any;
    renderItem: (item: {
        type: any;
        label?: any;
        colLayout?: any;
        formItemLayout?: any;
        ctrlProps?: any;
    }, index: any) => React.JSX.Element;
    renderCommonAttrs: (item: {
        id?: any;
        ctrlProps?: any;
    }) => any;
    renderSubmit: (item: {
        ctrlProps?: any | undefined;
        btnProps?: any | undefined;
    }) => React.JSX.Element;
    filterRules: (rules?: any[]) => any[];
    renderInput: (item: {
        datarule?: any;
        id: any;
        required?: any;
        type?: any;
        rules?: any;
        bindctrl: any;
        data?: never[] | undefined;
        ctrlProps?: any;
    }) => any;
    renderOther: (item: {
        required?: any;
        id: any;
        rules?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    renderNumber: (item: {
        required?: any;
        id: any;
        rules?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
        ctrlProps?: any;
    }) => any;
    getUploadBtn: (item: {
        ctrlProps?: any | undefined;
    }, restProps: IRestProps, locale: DynamicAttrLocale) => React.JSX.Element;
    renderFile: (item: {
        required?: any;
        id?: any;
        rules?: any;
        ctrlProps?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    renderSlider: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        data?: any;
        type?: any;
        bindctrl: any;
    }) => any;
    renderRate: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        data?: any;
        type?: any;
        bindctrl: any;
    }) => any;
    renderCombination: (item: {
        required?: any;
        id: any;
        prefixId?: any;
        suffixId?: any;
        rules?: any;
        ctrlProps?: any;
        addonBefore?: any;
        addonAfter?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    filterEmail: (value: string | string[], data?: never[]) => void;
    renderEmailOption: (item: {
        data?: never[] | undefined;
        id: any;
    }) => void;
    renderEmail: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        data?: never[] | undefined;
        type?: any;
        bindctrl: any;
    }) => any;
    renderRadioGroup: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        data?: any;
        type?: any;
        bindctrl: any;
    }) => any;
    renderGroup: (type: string, data: never[] | undefined, props: JSX.IntrinsicAttributes & RadioGroupProps & React.RefAttributes<HTMLDivElement>) => React.JSX.Element;
    renderCheckbox: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        data?: any;
        type?: any;
        bindctrl: any;
    }) => any;
    renderDateItem: (props: any, type: string) => React.ReactNode;
    renderDatePicker: (item: {
        required?: any;
        id: any;
        format?: any;
        type?: any;
        ctrlProps?: any;
        rules?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    formatRangeTime: (value: string | number | any[] | moment.Moment | Date | moment.MomentInputObject | null | undefined, format: boolean | undefined) => moment.Moment[] | null;
    renderTimePicker: (item: {
        required?: any;
        id: any;
        format?: any;
        ctrlProps?: any;
        rules?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    renderSelect: (item: {
        required?: any;
        id: any;
        type?: any;
        rules?: any;
        ctrlProps?: any;
        bindctrl: any;
        data: any;
    }) => any;
    renderTreeSelect: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    renderCascader: (item: {
        required?: any;
        id: any;
        rules?: any;
        ctrlProps?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    renderPopEdit: (item: {
        required?: any;
        id: any;
        popeditProps?: any;
        rules?: any;
        ctrlProps?: any;
        type?: any;
        bindctrl: any;
        data?: never[] | undefined;
    }) => any;
    handleProps: (formProps: IFormProps | undefined) => {
        hideRequiredMark?: boolean | undefined;
        labelAlign?: ["left" | "right"] | undefined;
        layout?: ["vertical" | "inline" | "horizontal"] | undefined;
        onSubmit?: ((form: any) => void) | undefined;
    };
    render(): React.JSX.Element;
}
declare const _default: import("../compatible-form/interface").ConnectedComponentClass<typeof DynamicAttribute, import("../compatible-form/_util/types").Omit<import("../compatible-form").FormComponentProps<any>, "form">>;
export default _default;
