import { EventEmitter } from '@angular/core';
export declare enum DataPointDataType {
    Boolean = "Boolean",
    Decimal = "Decimal",
    Fixed = "Fixed",
    Float = "Float",
    Integer = "Integer",
    String = "String",
    Timestamp = "Timestamp"
}
export declare enum ValidationRuleType {
    Limit = "Limit",
    Effective = "Effective"
}
export interface IDynamicComponent {
    /** 初始化的配置 */
    set config(val: IDynamicComponentConfig);
    /** 初始化的配置 */
    get config(): IDynamicComponentConfig;
    /** 当前是否准备完毕 */
    ready: boolean;
    /** 准备完毕发生变更 */
    readyChange: EventEmitter<boolean>;
    /** 值发生改变 */
    valueChange: EventEmitter<any>;
}
/** 组件配置 */
export interface IDynamicComponentConfig {
    /** 键值对 */
    [key: string]: any;
    /** 控件唯一名称 */
    name?: string;
    /** 值 */
    value?: any;
    /** 禁用 */
    disabled?: boolean;
    /** 只读 */
    readonly?: boolean;
    /** 占位符 */
    placeholder?: string;
    /** 值发生改变 */
    onChange?: (name: string, val: any) => void;
    /** 数据源 */
    dataSource?: any;
    /** 有效值 */
    /** 数据类型 */
    dataType?: DataPointDataType;
    /** 是否在界面上显示上下限 */
    displayLimits?: boolean;
    /** 是否允许超越上下限 */
    isLimitOverrideAllowed?: boolean;
    /** 是否必填 */
    /** 采集项下限 */
    lowerLimit?: number | undefined;
    /** 采集项上限 */
    upperLimit?: number | undefined;
    /** 真 */
    booleanTrue?: string | undefined;
    /** 假 */
    booleanFalse?: string | undefined;
    /** 采集项排序 */
    sequence?: number;
    /** 固定值 */
    fixedValue?: string | undefined;
    /** 有效值 */
    effective?: any | Array<any> | undefined;
    ruleType?: ValidationRuleType;
    width?: string;
    height?: string;
}
