import { FormControl, NgControl } from '@angular/forms'; export interface Item { key: string; value: string; } export interface ElementTemplate { fields: Field[] | ProcessedField[]; name?: string; } interface FieldPrototype { value: string | ElementTemplate[] | Form; label: string; order: number; bound_containers?: FieldParam[]; params?: FieldParam[] | BriefFieldParams; sublabel?: string; placeholder?: string; refAttr?: string; itemsList?: Item[] | string[]; control?: NgControl | FormControl; elementTemplate?: ElementTemplate; } export interface Field extends FieldPrototype { fieldType: string; id: number; key: boolean; attrName: string; controlType: string; width: number; disabled: boolean; tooltip?: string; entityName?: string; itemsListService?: string; camundaVar?: string; executor?: string; templateName?: string; } export interface ProcessedField extends FieldPrototype { fieldId: string; rowPosition: number; isDisabled: boolean; type: string; maxItems?: number; directive?: string; pipeOption?: string; tooltipMessage?: string; class?: string; bound_to_container?: boolean; } export interface BriefFieldParams { [key: string]: any; } export interface FieldParam { name: string; label: string; value: string; exists?: boolean; } export declare type Trigger = string | { triggerValue: string; }; export interface Handler { handlerClass: string; triggers: Trigger[]; id?: string; inputControls?: any; outputControls?: any; formId?: string; params?: any[]; } export interface Report { reportName: string; entityName?: string; format?: 'doc' | 'html' | 'pdf'; reportLabel?: string; } export interface ReportData { [key: string]: any; } export interface Form { name: string; label: string; fields: ProcessedField[]; handlers: Handler[]; reports?: Report[]; objects?: FormObject[]; assignee?: string; assigneeName?: string; generic_title?: string; generic_description?: string; } export interface ActionMsg { message: string; control: string; value: string; formValues: any; } export interface FormObject { label: string; form: string; objId: string; order: number; } export {};