/// <reference types="react" />
import { IBasicFormColumnsProps } from "./BasicFormColumns";
import { IConfigParams, TFormSelectFields, TFromInputNumberFields } from "./inter/common";
import { Moment } from "moment";
export default class FormColumns {
    protected needColumns: any[];
    protected setNeedColumns(needColumns: object[]): void;
    protected getNeedColumns(): object[];
    /**
     * 初始化 表格数据
     * @param config
     * @public
     */
    initFormColumns: (config: Array<string | IBasicFormColumnsProps> | IConfigParams) => this;
    /**
     * 配置 form columns中 哪些列是日期选择模式
     * 使用到dateTs时 format统一为时间戳格式
     * @param columns
     * @public
     */
    setFormColumnToDatePicker: (columns: Array<{
        value: string;
        valueType: 'date' | 'dateRange' | 'dateTime' | 'time' | 'dateTs';
        needValueType: 'timestamp' | 'date';
        picker?: 'time' | 'date' | 'week' | 'month' | 'quarter' | 'year';
        splitKey?: '';
        defaultValue?: number;
        format?: 'Timestamp' | 'YYYY-MM-DD' | 'YYYY-MM-DD HH:mm' | 'HH:mm' | 'YYYY' | 'YYYY-MM' | 'MM-DD' | 'MM' | 'DD';
    }>) => this;
    /**
     * 配置 form columns中 哪些列是选择框Select
     * @param columns
     * @public
     */
    setFormColumnToSelect: (columns: Array<TFormSelectFields>) => this;
    /**
     * 配置 form columns中 哪些列是InputNumber的列
     * @param columns
     * @public
     */
    setFormColumnToInputNumber: (columns: Array<TFromInputNumberFields>) => this;
    /**
     * 行元素是自动填充加选择的模式
     * @param columns
     * @public
     */
    setFormColumnToAutoComplete: (columns: Array<{
        value: string;
        data: Array<{
            value: string;
        }>;
        defaultValue?: Moment;
    }>) => this;
    /**
     * 配置 form columns中 哪些列是TextArea 文本域的
     * @param columns
     * @public
     */
    setFormColumnToInputTextArea: (columns: Array<{
        value: string;
    }>) => this;
    /**
     * 配置 form columns中 哪些列是自定义的可以输入特殊字符的input的列
     * @param columns
     * @public
     */
    setFormColumnToSpecialInput: (columns: {
        value: string;
        valueType: string;
        valueEnum?: {
            prefix?: (updateValue: (inputVal: number | string) => void) => JSX.Element;
            suffix?: (updateValue: (inputVal: number | string) => void) => JSX.Element;
        };
    }[]) => this;
    /**
     * 配置 form columns中 哪些列是可以自定义宽度的列
     * @param columns
     */
    setFormColumnToSelfColSpan: (columns: Array<{
        value: string;
        colSpan: number;
        labelCol?: object;
        wrapperCol?: object;
        showLabel?: boolean;
    }>) => this;
    /**
     * columns里的列是要去校验的列
     * @param columns
     * @public
     */
    needToRules: (columns: Array<string | {
        value: string;
        rules: Array<{
            required: boolean;
            validator: any;
        }>;
    }>) => this;
    needToHide: (columns: string[]) => this;
    /**
     * columns里的列是需要设置成disable的列
     * @param columns
     * @public
     */
    needToDisabled: (columns: (string | {
        value: string;
        disabled: boolean;
    })[]) => this;
}
