import { EventEmitter } from '../../stencil-public-runtime';
import { DataUnit } from '@sankhyalabs/core';
import { AttachFetcherFacadeInterface } from '../../lib';
import { FetcherFacade } from './structure';
import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
import { TCrudConfig } from './interfaces/ICrudConfig';
import { TFetcherType } from './interfaces/TFetcherType';
export declare class SnkAttach {
  private _application;
  private _crudElement;
  private _currentDataUnitBuilder;
  /**
   * Chave da configuração legado da grid.
   */
  gridLegacyConfigName: string;
  /**
   * FetcherType define o tipo de fetcher responsável por carregar os dados do DataUnit.
   */
  fetcherType: TFetcherType;
  /**
   * Fetcher responsável por carregar os dados do DataUnit.
  */
  fetcher: AttachFetcherFacadeInterface;
  /**
   * DataUnit responsável por carregar os dados.
  */
  dataUnit: DataUnit;
  /**
   * DataUnitBuilder responsável por implementar dados a serem utilizados no DataUnit.
  */
  dataUnitBuilder: FetcherFacade;
  /**
   * Identificação do registro pai.
  */
  registerKey: string;
  /**
   * Nome da entidade à ser utilizada para relacionar o anexo ao DataUnit pai.
  */
  entityName: string;
  /**
  * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
  */
  messagesBuilder: SnkMessageBuilder;
  _currentFetcher: AttachFetcherFacadeInterface;
  _currentDataUnit: DataUnit;
  crudConfig: TCrudConfig;
  private _appResourceID;
  /**
   * Evento disparado quando o usuário clica no botão voltar.
  */
  back: EventEmitter<void>;
  registerKeyWatcher(newRegisterKey: string, oldRegisterKey: string): Promise<void>;
  private getAnexoSistemaFetcherInstance;
  private initAttach;
  /**
   * 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-attach.msg.ts"
  */
  private getMessage;
  showFinishedToast(): void;
  private downloadAttachment;
  private returnToGridMode;
  private loadAttachmentDataUnit;
  private loadAnexoSistema;
  private loadAttach;
  private initDataUnitLoaders;
  private disableEditFieldsNotInForm;
  private handleTaskbarClick;
  private handleBack;
  private handleFinish;
  private validateAnexoSistema;
  componentWillLoad(): Promise<void>;
  componentWillRender(): void;
  private handleOnDataStateChange;
  private isScreenVariation;
  private getGridLegacyConfigName;
  render(): any;
}
