import { GridComponentConfig } from './gridComponentconfig';
import { Extract } from './extract';
export interface Column {
    css: string;
    controls: Control[];
}
export interface BindingSet {
    from: string;
    to: string;
    refKey: string;
}
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class Control {
    bindingSet: BindingSet[];
    handler: any;
    isHidden: boolean;
    isReadOnly: boolean;
    isDisabled: boolean;
    isRequired: boolean;
    key: string;
    onCreateValue: any;
    onUpdateValue: any;
    referenceName: string;
    sectionName: string;
    selectAction: any;
    view: any;
    controlType: string | number | any;
    dataSourceType: number;
    label: string;
    options: any;
    showAs: number;
    columns: Column[];
    сontrolType: number;
    editableGrid: GridComponentConfig;
    controlName: string;
    description: string;
    eventJs: string;
    content: string;
    watermark: string;
    controls: Control[];
    placeholder: string;
    size: number;
    inline: boolean;
    isMultiple: boolean;
    precision: number;
    titlePosition: string;
    showLabel: boolean;
    pattern: string;
    format: string;
    extract: Extract;
    minDate: Date | string | number;
    maxDate: Date | string | number;
    allowedFileTypes: string[];
    allowedFileSize: number;
    paternMessage: string;
    constructor(bindingSet?: BindingSet[], handler?: any, isHidden?: boolean, isReadOnly?: boolean, isDisabled?: boolean, isRequired?: boolean, key?: string, onCreateValue?: any, onUpdateValue?: any, referenceName?: string, sectionName?: string, selectAction?: any, view?: any, controlType?: string | number | any, dataSourceType?: number, label?: string, options?: any, showAs?: number, columns?: Column[], сontrolType?: number, editableGrid?: GridComponentConfig, controlName?: string, description?: string, eventJs?: string, content?: string, watermark?: string, controls?: Control[], placeholder?: string, size?: number, inline?: boolean, isMultiple?: boolean, precision?: number, titlePosition?: string, showLabel?: boolean, pattern?: string, format?: string, extract?: Extract, minDate?: Date | string | number, maxDate?: Date | string | number, allowedFileTypes?: string[], allowedFileSize?: number, paternMessage?: string);
}
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class ControlType {
    constructor();
    static inputFields: string[];
    static formFields: string[];
    static designFields: string[];
    static EFormElement: Readonly<{
        UNDEFINED: number;
        TextBox: number;
        TextArea: number;
        Button: number;
        CheckBox: number;
        UploadFile: number;
        RadioButton: number;
        RadioButtonList: number;
        DropDownList: number;
        Date: number;
        Time: number;
        DateTime: number;
        TableLayout: number;
        BootstrapRow: number;
        FlexRow: number;
        Toggle: number;
        URL: number;
        CheckList: number;
        HiddenField: number;
        Label: number;
        TextField: number;
        ListField: number;
        PickList: number;
        Lookup: number;
        MultiLookup: number;
        EditableGrid: number;
        EmailField: number;
        NumberField: number;
        MoneyField: number;
        PositiveNumber: number;
        HtmlContent: number;
        CustomControl: number;
        GMAP: number;
        SectionLayout: number;
        MenuGrid: number;
        ProgressBar: number;
        FormTab: number;
        Form: number;
    }>;
    static controlType(num: number): string;
    static controlGroupType(num: number): 'input' | 'form' | 'design' | 'undefined';
    static isInputField(num: number): boolean;
    static isFormField(num: number): boolean;
    static isDesignField(num: number): boolean;
    static isDateType(num: number): boolean;
}
