import { EventEmitter } from '../../stencil-public-runtime';
import { IFormViewField } from './interfaces/IFormViewField';
import { Record, UserInterface } from '@sankhyalabs/core';
import { FormItems } from './structure';
import { ICustomEditor } from '../../utils/customEditor/interfaces/ICustomEditor';
export declare class EzFormView {
  private _formElements;
  private _customEditors;
  _element: HTMLEzFormViewElement;
  /**
   * Evento emitido quando o componente foi totalmente carregado na DOM.
   */
  ezContentReady: EventEmitter<Array<HTMLElement>>;
  /**
   * Responsável por notificar quando ocorrer a renderização de itens do formulário.
   */
  formItemsReady: EventEmitter<FormItems>;
  /**
   * Define a lista de metadados usada para criar os campos de user interface.
   */
  fields: Array<IFormViewField>;
  /**
   * Define os registros da linha selecionada.
   */
  selectedRecord: Record;
  /**
   * Define se o formulario deve possuir apenas 1 coluna.
   */
  singleColumn: boolean;
  showUp(): Promise<void>;
  /**
   * Registra um editor customizado para campos da grade e formulário.
   */
  addCustomEditor(fieldName: string, customEditor: ICustomEditor, detailContext?: string): Promise<void>;
  /**
   * Altera/adiciona uma propriedade nos metados do campo.
   */
  setFieldProp(fieldName: string, propName: string, value: any): Promise<void>;
  private groupFields;
  componentDidRender(): void;
  isItemFullWidth(userInterface: UserInterface): boolean;
  buildFormItemElement(item: IFormViewField, classItem?: string): any;
  render(): any;
}
