import { EventEmitter } from '../../stencil-public-runtime';
import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
import { VIEW_MODE } from '../../lib/utils/constants';
export interface IConfigurator {
  viewMode: number;
  openConfig?: boolean;
}
export declare class SnkConfigurator {
  private _application;
  private modal;
  private _snkLayoutFormConfig;
  _element: HTMLElement;
  _opened: boolean;
  _permissions: any;
  /**
   * Usado para exibir os botões de ação
   */
  showActionButtons: boolean;
  /**
   * Usado para guardar ou recuperar as configurações do formulário.
   */
  configName: string;
  /**
   * Identificador de recursos como configurações e acesso.
   */
  resourceID: string;
  /**
   * Define qual modo de visualização está ativo.
   */
  viewMode: VIEW_MODE;
  /**
   * ID do container que contém os elementos customizados do configurator.
   */
  customContainerId: string;
  /**
   * Define se o LayoutFormConfig será exibido no configurador.
   */
  layoutFormConfig: boolean;
  /**
   * Emitido quando seleciona o modo de visualização.
   */
  configSelected: EventEmitter<VIEW_MODE>;
  /**
   * Emitido quando clica para abrir a configuração.
   */
  openConfig: EventEmitter<VIEW_MODE>;
  /**
   * Emitido quando salva a configuração.
   */
  save: EventEmitter<void>;
  /**
   * Emitido quando cancela o salvamento da configuração.
   */
  cancel: EventEmitter<void>;
  /**
   * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
   */
  messagesBuilder: SnkMessageBuilder;
  /**
   * Exibe a janela de configuração.
   */
  open(): Promise<void>;
  /**
   * Fecha a janela de configuração.
   */
  close(): Promise<void>;
  private closeConfig;
  private onViewModeChanged;
  private onClickOpenConfig;
  private isAllowed;
  private enableModeConfig;
  private getViewModeValue;
  /**
   * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
   * através de um pequeno modulo na estrutura da aplicação:
   * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
   * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-configurator.msg.ts"
   */
  private getMessage;
  handleSave(): void;
  componentWillLoad(): void;
  componentDidRender(): void;
  render(): any;
}
