import { EventEmitter } from '@angular/core'; import { Validators, FormControl } from '@angular/forms'; export declare class ElementAttribute { class?: string[]; style?: any; } export declare class BSGrid { size?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto'; device?: 'sm' | 'md' | 'lg' | 'xl'; offset?: boolean; } export declare class BSContainer extends ElementAttribute { id?: string; fluid?: boolean; } export declare class BSColumn extends ElementAttribute { bootstraps?: BSGrid[]; } export declare class BSRow extends ElementAttribute { valign?: 'start' | 'center' | 'end'; halign?: 'start' | 'center' | 'end' | 'around' | 'between'; } export declare class Form extends BSContainer { name: string; title?: string; rows: Row[]; } export declare class Column extends BSColumn { field: any | any[]; } export declare class Row extends BSRow { columns?: Column[]; } export declare function containerClass(container: BSContainer): string[]; export declare function columnClass(column: BSColumn): string[]; export declare function rowClass(row: BSRow): string[]; export declare function readFormValue(form: Form): Dictionery; export declare enum InternalTag { BottonSheet = "dm-botton-sheet", Button = "dm-button", ButtonToggle = "dm-button-toggle", Checkbox = "dm-checkbox", Chips = "dm-chips", Datepicker = "dm-datepicker", Icon = "dm-icon", Menu = "dm-menu", Progress = "dm-progress", Radio = "dm-radio", Select = "dm-select", Slider = "dm-slider", SlideToggle = "dm-slide-toggle", Input = "dm-input", Label = "dm-label", Grid = "dm-grid", Tab = "dm-tab", Upload = "dm-upload", Empty = "dm-empty" } export declare enum FieldTagType { 'color' = 0, 'date' = 1, 'datetime-local' = 2, 'email' = 3, 'file' = 4, 'hidden' = 5, 'image' = 6, 'month' = 7, 'number' = 8, 'password' = 9, 'radio' = 10, 'range' = 11, 'reset' = 12, 'search' = 13, 'submit' = 14, 'tel' = 15, 'text' = 16, 'time' = 17, 'url' = 18, 'week' = 19 } export declare enum ButtonAppearance { 'mat-button' = 0, 'mat-raised-button' = 1, 'mat-flat-button' = 2, 'mat-stroked-button' = 3, 'mat-icon-button' = 4, 'mat-fab' = 5, 'mat-mini-fab' = 6 } export declare type ValidatorType = 'required' | 'requiredTrue' | 'email' | 'nullValidator' | { 'pattern': string; } | { 'min': number; } | { 'max': number; } | { 'minLength': number; } | { 'maxLength': number; }; export declare enum ValidationStatus { None = 0, Validation = 1 } export declare const ValidatorList: { min: { validator: (...args: any[]) => import("@angular/forms").ValidatorFn; isParam: boolean; }; max: { validator: (...args: any[]) => import("@angular/forms").ValidatorFn; isParam: boolean; }; minLength: { validator: (...args: any[]) => import("@angular/forms").ValidatorFn; isParam: boolean; }; maxLength: { validator: (...args: any[]) => import("@angular/forms").ValidatorFn; isParam: boolean; }; pattern: { validator: (...args: any[]) => import("@angular/forms").ValidatorFn; isParam: boolean; }; required: { validator: (...args: any[]) => typeof Validators.required; isParam: boolean; }; requiredTrue: { validator: (...args: any[]) => typeof Validators.requiredTrue; isParam: boolean; }; email: { validator: (...args: any[]) => typeof Validators.email; isParam: boolean; }; nullValidator: { validator: (...args: any[]) => typeof Validators.nullValidator; isParam: boolean; }; }; export declare const ValidatorNameList: string[]; export declare interface Dictionery { [key: string]: T; } export interface SearchableDataList { callbackSearch?: (text: any) => any[]; keyFieldName?: string; displayFieldName: string; onlyExist?: boolean; list: T[] | any[]; } export interface DataList { keyFieldName: string; displayFieldName: string; list: T[] | any[]; } export declare function getEnumValues(e: any): string[]; export declare type EventType = 'click' | 'change' | 'filter' | 'checked' | 'setting change' | 'selected' | 'upload' | 'delete'; export interface FieldEvent { sender: T; value?: any; event?: EventType; } export interface IField { validationStatus: ValidationStatus; option: any; event: EventEmitter>; formControl: FormControl; onUpdateValue(value: T, eventType: EventType): void; onOptionChanged(option: any): void; } export interface IOption extends BSColumn { name: string; tagName: InternalTag; label?: string; disabled?: boolean; visible?: boolean; value?: any | undefined; validation?: ValidatorType[]; attrs?: Dictionery[]; isDesignMode?: boolean; fieldStatus?: FieldStatus; updateOption?: () => void; readValueFunction?: (option: IOption) => any; } export declare type FieldStatus = 'Ready' | 'OnInit' | 'OnCreate' | 'Error'; export declare type FormMode = 'designer' | 'view'; /** * check object is null or undefined */ export declare function isNullorUndefined(value: any): boolean; /** * clone object but refrence variable not change */ export declare function clone(obj: any): any; /** * clone object and all refrence variable but may be there is a circle loop. */ export declare function deepClone(obj: any): any; export declare function getObjectProp(fieldName: string, defaultValue: any, ...variable: any[]): any; /** * Transforms a camelCase string into a readable text format * @example textify('helloWorld!') * // Hello world! */ export declare function textify(text: string): string; /** * Transforms a text string into a title case text format * @example titleCase('hello world!') * // Hello Workd! */ export declare function titleCase(value: string): string;