import { CSSProperties, ReactElement, RefObject } from 'react';
import { formConfProps } from '../config/interface';
import { LabelPosition } from '../interface';
import { CompDefaultPropsInfo } from '../props.dt';
export declare type TitlePropsDefaultType = {
    show?: boolean;
    position?: 'left' | 'right';
    layIcon?: ReactElement;
    title?: string;
    style?: CSSProperties;
};
export declare type TitlePropsType = TitlePropsDefaultType | ReactElement;
export declare type FooterBtnType = {
    text: string;
    loading?: boolean;
};
export declare type FooterDefaultPropsType = {
    save?: FooterBtnType;
    reset?: FooterBtnType;
    position?: 'left' | 'right';
};
export declare type FooterPropsType = FooterDefaultPropsType | ReactElement;
export declare type OptType = 'modifiedRow' | 'newRow' | 'deletedRow';
declare type rule = Record<string, any> & {
    message?: string;
};
/**
 * @description   表单属性
 */
export declare type FormInfo = {
    form?: any;
    /**
     * @description   是否是查看状态
     * @default       false
     */
    view?: boolean;
    /**
     * @description   labe宽度
     * @default       85
     */
    labelWidth?: number | string;
    /**
     * @description   表格表单
     * @default       false
     */
    bordered?: boolean;
    /**
     * @description   label标签是否显示冒号
     * @default       true
     */
    colon?: boolean;
    /**
     * @description   表单属性
     */
    value?: object;
    /**
     * @description   label标签未知
     * @default       left
     */
    labelPosition?: LabelPosition;
    /**
     * @description   表单判断是新增、修改用来格式化数据
     */
    opt?: OptType;
    /**
     * @description   表单主键（判断是新增、修改用来格式化数据）
     */
    dataId?: string;
    /**
     * @description   表单禁用
     * @default       false
     */
    disabled?: boolean;
    /**
     * @description   表单属性
     * @default       right
     */
    labelAlign?: 'left' | 'center' | 'right';
    /**
     * @description   表单列数配置
     */
    colspan?: number | Array<number> | {
        [propsKey: number]: number;
    };
    /**
     * @description   表单校验规则
     */
    rules?: {
        [propsKey: string]: Array<rule>;
    };
    /**
     * @description   表单值改变事件
     */
    onValuesChange?: (changeval: Object, allvalues: Object) => void;
    footerProps?: FooterPropsType;
    layout?: 'horizontal' | 'vertical' | 'inline';
    onSave?: (vals: any, errors: any, formRef?: any) => any;
    onReset?: () => any;
    onVertify?: () => any;
    getPopupContainer?: () => Document;
    forceRender?: boolean;
    panelHeight?: string | number;
    outRef?: any;
    design?: boolean;
    defaultValue?: any;
    /**
     * form表单集的ref对象
     */
    formSetRef?: RefObject<any>;
};
export declare type NGFormPropsInfo = FormInfo & CompDefaultPropsInfo<formConfProps.FormLayout>;
export {};
