import { ChoiceListOption } from '../../forms/page/widgets/widget-value/choice-list-options';
import { IEnlightenType } from '../fields/types/ienlighten-type';
export declare class Attribute {
    fixedSeries: Array<string>;
    name: string;
    label: string;
    defaultValue: string;
    size: number;
    isNullable: boolean;
    isPrimary: boolean;
    isHidden: boolean;
    isAutoIncremented: boolean;
    isForeign: boolean;
    referenceColumnName: string;
    referenceTableName: string;
    enlightenType: IEnlightenType;
    tableName: string;
    type: string;
    attributeType: AttributeTypes;
    fields: Attribute[];
    currentDragByElement: boolean;
    isSelected?: boolean;
    isManyToManyRefKey: boolean;
    widgetType: string;
    widgetSubType: string;
    guid: string;
    formId: number;
    choices: Array<ChoiceListOption>;
    identifier: string;
    /**
     * Constructor
     *
     * @param any
     */
    constructor(attribute?: Attribute);
    static createAttributes(attributes: Array<Attribute>, tableName?: string, noCodeMode?: boolean): Array<Attribute>;
    newAttribute(): void;
    /**function to create attribute object with existing values
    *
    *@param Attribute
    *
    */
    attribute(attribute: Attribute): void;
    setWidgetType(): void;
    /**
     * Set enlighten type subtype wise
     */
    setTextWidgetSubType(): void;
    /**
     * Set date enlighten type subtype wise
     */
    setDateTimeWidgetSubType(): void;
}
/**
 * Attribute Sub types
 */
export declare enum AttributeTypes {
    widgetType = "WidgetType",
    metaType = "MetaType",
    assetType = "AssetType"
}
