import { DataUnit, Filter, KeyboardManager, Record } from "@sankhyalabs/core";
import { DialogType, MessageOptions } from "@sankhyalabs/ezui/dist/collection/utils";
import { AlertItem } from "@sankhyalabs/ezui/dist/types/components/ez-alert-list/ez-alert-list";
import { IOption, ISearchArgument } from "@sankhyalabs/ezui/dist/types/components/ez-search/ez-search";
import { EventEmitter } from "../../stencil-public-runtime";
import { IAppletCallerParams } from "../../lib/applet-caller/applet-caller";
import { DataFetcher, Options } from "../../lib/http/data-fetcher/DataFetcher";
import AuthFetcher, { AutorizationType } from "../../lib/http/data-fetcher/fetchers/auth-fetcher";
import DataUnitFetcher from "../../lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher";
import GridConfigFetcher from "../../lib/http/data-fetcher/fetchers/grid-config-fetcher";
import ParametersFetcher from "../../lib/http/data-fetcher/fetchers/parameters-fecher";
import { IRemoveSearchListener, ISearchListener, PesquisaFetcher } from "../../lib/http/data-fetcher/fetchers/pesquisa-fetcher";
import { TotalsFetcher } from "../../lib/http/data-fetcher/fetchers/totals-fetcher";
import { IClientEventResponse } from "../../lib/http/data-fetcher/interfaces/IClientEventResponse";
import { IDataFetcherRecaller } from "../../lib/http/data-fetcher/recaller/IDataFetcherRecaller";
import { SnkMessageBuilder } from "../../lib/message/SnkMessageBuilder";
import { SnkErrorHandler } from "./errorhandler/snk-error-handler";
import { ILoadBarRequestListener } from "./request-listener/RequestListenerFactory";
import { TEMPLATES_SKELETON } from "../../lib/utils/constants";
import { LayoutFormConfig } from "../../lib/configs/LayoutFormConfig";
export declare class SnkApplication {
  private readonly NEW_VERSION_POPUP_LOCKER;
  private readonly FEATURE_FLAG_CACHE_DURATION;
  _parameters: ParametersFetcher;
  _urlParams: Map<string, any>;
  _dataUnitFetcher: DataUnitFetcher;
  _gridConfigFetcher: GridConfigFetcher;
  _totalsFetcher: TotalsFetcher;
  _pesquisaFetcher: PesquisaFetcher;
  _authFetcher: AuthFetcher;
  _applicationResourceID: string;
  _popUp: HTMLEzPopupElement;
  _rightModal: HTMLEzModalElement;
  _errorHandler: SnkErrorHandler;
  _authPromises: Array<PendingPromise>;
  _removeVersionLayoutPopup: Function;
  _keyboardManager: KeyboardManager;
  _waitingAppReady: Array<any>;
  _duCache: Map<string, DataUnit>;
  _duPromises: Map<string, Array<PendingPromise>>;
  _requestListener: ILoadBarRequestListener;
  private readonly _maxTimerAppLoading;
  private readonly _featureFlagsCache;
  private _lockManagerTimer;
  private _scrimWindowTimer;
  private _isBrowserTypeElectron;
  private _pendingActions;
  private _auth;
  private _currentPkParameter;
  private _loadPkParameter;
  private _isLoadedByPk;
  private _formConfigFetcher;
  private _LayoutFormConfigSingleton;
  private processPendingActions;
  private get parameters();
  private getAuth;
  private getApplicationAuth;
  private _element;
  _applicationReady: boolean;
  _templateSkeleton: TEMPLATES_SKELETON;
  _activeScrimWindow: boolean;
  /**
  * Define se o componente deve usar o LockManager para controle de carregamento da aplicação.
  */
  enableLockManagerLoadingApp: boolean;
  /**
  * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
  */
  messagesBuilder: SnkMessageBuilder;
  /**
  * Nome da configuração utilizada para salvar as preferências dos blocos de construção.
  */
  configName: string;
  /**
   * Chave da configuração legada da grade, utilizada para migração de configurações antigas.
   */
  gridLegacyConfigName: string;
  /**
   * Chave da configuração legada do formulário, utilizada para migração de configurações antigas.
   */
  formLegacyConfigName: string;
  /**
  * Usado para receber um parâmetro na inicialização da tela, e utilizá-lo conforme necessário
  * caso a tela receba um parâmetro, e, esta propriedade não seja informada
  * é criado um filtro de forma automática através do método defaultLoadByPk
  */
  loadByPK: LoadByPkHandler;
  watchPropHandler(newValue: LoadByPkHandler, _: LoadByPkHandler): void;
  /**
   * Obtém o controlador de teclado.
   * @returns {Promise<KeyboardManager>} O gerenciador de teclado.
   * @async
   */
  getKeyboardManager(): Promise<KeyboardManager>;
  /**
   * Obtém o notificador de Layout de formulário.
   * @returns {Promise<LayoutFormConfig>} O configurador de Layout do Formulário.
   * @async
   */
  getLayoutFormConfig(): Promise<LayoutFormConfig>;
  /**
   * Obtém `true` caso o usuário logado seja o SUP.
   * @returns {Promise<boolean>} `true` se o usuário for SUP, `false` caso contrário.
   * @async
   */
  isUserSup(): Promise<boolean>;
  /**
   * Adiciona uma ação pendente que deve ser executada por um determinado locker.
   * @param {string} actionsLocker - Nome do locker da ação que será adicionada.
   * @param {Function} action - Ação que será executada.
   * @returns {Promise<void>}
   * @async
   */
  addPendingAction(actionsLocker: string, action: Function): Promise<void>;
  /**
   * Realiza a chamada ao Service Broker conforme o nome do serviço.
   * @param {string} serviceName - Nome do serviço.
   * @param {string | Object} payload - Dados que serão processados na ação.
   * @param {Options} [options] - Parâmetros de URL.
   * @returns {Promise<any>} A resposta do Service Broker.
   * @async
   */
  callServiceBroker(serviceName: string, payload: string | Object, options?: Options): Promise<any>;
  /**
   * Inicializa o onboarding para uma chave específica.
   * @param {string} onboardingKey - A chave do onboarding a ser iniciado.
   * @returns {Promise<void>}
   * @async
   */
  initOnboarding(onboardingKey: string): Promise<void>;
  private doInitOnboarding;
  /**
   * Obtém `true` caso o usuário logado tenha permissão para determinada ação.
   * @param {AutorizationType} access - O tipo de acesso a ser verificado.
   * @param {string} [resourceID] - O ID do recurso para verificar a permissão. Se não fornecido, verifica a permissão da aplicação.
   * @returns {Promise<boolean>} `true` se o usuário tiver acesso, `false` caso contrário.
   * @async
   */
  hasAccess(access: AutorizationType, resourceID?: string): Promise<boolean>;
  /**
   * Obtém todos os acessos do usuário logado para um recurso específico ou para a aplicação.
   * @param {string} [resourceID] - O ID do recurso. Se não fornecido, obtém os acessos da aplicação.
   * @returns {Promise<any>} Um objeto contendo todos os tipos de acesso e se o usuário os possui.
   * @async
   */
  getAllAccess(resourceID?: string): Promise<any>;
  /**
   * Obtém o valor de um parâmetro do tipo string.
   * @param {string} name - O nome do parâmetro.
   * @returns {Promise<string>} O valor do parâmetro como string.
   * @async
   */
  getStringParam(name: string): Promise<string>;
  /**
   * Obtém o valor de um parâmetro do tipo Inteiro.
   * @param {string} name - O nome do parâmetro.
   * @returns {Promise<number>} O valor do parâmetro como número inteiro.
   * @async
   */
  getIntParam(name: string): Promise<number>;
  /**
   * Obtém o valor de um parâmetro do tipo Decimal.
   * @param {string} name - O nome do parâmetro.
   * @returns {Promise<number>} O valor do parâmetro como número decimal.
   * @async
   */
  getFloatParam(name: string): Promise<number>;
  /**
   * Obtém o valor de um parâmetro do tipo booleano.
   * @param {string} name - O nome do parâmetro.
   * @returns {Promise<boolean>} O valor do parâmetro como booleano.
   * @async
   */
  getBooleanParam(name: string): Promise<boolean>;
  /**
   * Obtém o valor de um parâmetro do tipo data.
   * @param {string} name - O nome do parâmetro.
   * @returns {Promise<Date>} O valor do parâmetro como objeto Date.
   * @async
   */
  getDateParam(name: string): Promise<Date>;
  /**
   * Exibe o conteúdo passado em um Popup.
   * @param {HTMLElement} content - O elemento HTML a ser exibido no popup.
   * @param {"auto" | "full"} [size="full"] - O tamanho do popup.
   * @param {boolean} [useHeader=true] - Define se o cabeçalho do popup deve ser usado.
   * @param {Function} [onCloseCallback] - Função a ser chamada quando o popup for fechado.
   * @returns {Promise<void>}
   * @async
   */
  showPopUp(content: HTMLElement, size?: "auto" | "full", useHeader?: boolean, onCloseCallback?: Function): Promise<void>;
  /**
   * Exibe o conteúdo passado em um Modal.
   * @param {HTMLElement} content - O elemento HTML a ser exibido no modal.
   * @returns {Promise<void>}
   * @async
   */
  showModal(content: HTMLElement): Promise<void>;
  /**
   * Apresenta uma lista de alertas.
   * Geralmente é utilizado para apresentar resultados de processamentos em lote.
   * @param {Array<AlertItem>} alerts - A lista de alertas a serem exibidos.
   * @returns {Promise<void>}
   */
  showAlerts(alerts: Array<AlertItem>): Promise<void>;
  /**
   * Fecha o Modal e limpa o conteúdo.
   * @returns {Promise<void>}
   * @async
   */
  closeModal(): Promise<void>;
  /**
   * Fecha o Popup e limpa o conteúdo.
   * @returns {Promise<void>}
   * @async
   */
  closePopUp(): Promise<void>;
  /**
   * Verifica se a licença do cliente tem determinado opcional (produto).
   * @param {string} opcional - O nome do opcional ou uma string de opcionais separados por vírgula.
   * @returns {Promise<boolean>} `true` se o cliente tiver o opcional, `false` caso contrário.
   * @async
   */
  temOpcional(opcional: string): Promise<boolean>;
  /**
   * Obtém a configuração de um recurso por service broker.
   * @param {string} key - A chave da configuração.
   * @returns {Promise<any>} Os dados da configuração.
   * @async
   */
  getConfig(key: string): Promise<any>;
  /**
   * Retorna se uma feature flag global está ativa ou não.
   */
  isFeatureActive(featureName: string): Promise<boolean>;
  /**
   * Salva a configuração de determinado recurso.
   * @param {string} key - A chave da configuração.
   * @param {Object} data - Os dados da configuração a serem salvos.
   * @returns {Promise<any>} O resultado da operação de salvamento.
   * @async
   */
  saveConfig(key: string, data: Object): Promise<any>;
  /**
   * Acessa informações de contexto "empurrados" na abertura da tela.
   * @param {string} attribName - O nome do atributo.
   * @returns {Promise<string>} O valor do atributo.
   * @async
   */
  getAttributeFromHTMLWrapper(attribName: string): Promise<string>;
  /**
   * Abre determinada tela, repassando pkObject.
   * @param {string} resourceId - O ID do recurso da tela a ser aberta.
   * @param {Object} pkObject - O objeto de chave primária a ser passado para a tela.
   * @returns {Promise<void>}
   * @async
   */
  openApp(resourceId: string, pkObject: Object): Promise<void>;
  /**
   * Realiza a chamada do WebConnection para realizar a exportação de arquivo.
   * @param {string} keyPort - Chave da porta que será requisitada.
   * @param {string} methodName - Nome do tipo de exportação de arquivo que será realizado.
   * @param {IAppletCallerParams} params - Parâmetros necessários para realizar a exportação do arquivo.
   * @returns {Promise<void>}
   * @async
   */
  webConnection(keyPort: string, methodName: string, params: IAppletCallerParams): Promise<void>;
  private getDuPromissesStack;
  /**
   * Cria o DataUnit a partir do nome da entidade. É possível armazená-lo no cache
   * passando o dataUnitName, assim, se mais de uma chamada for feita, o mesmo DataUnit será usado.
   * @param {string} entityName - O nome da entidade.
   * @param {string} [dataUnitName] - O nome para identificar o DataUnit no cache.
   * @param {DataUnit} [parentDataUnit] - O DataUnit pai, se houver.
   * @param {string} [configName] - O nome da configuração a ser usada.
   * @param {string} [resourceID] - O ID do recurso. Se não fornecido, usa o da aplicação.
   * @returns {Promise<DataUnit>} O DataUnit criado ou obtido do cache.
   * @async
   */
  createDataunit(entityName: string, dataUnitName?: string, parentDataUnit?: DataUnit, configName?: string, resourceID?: string): Promise<DataUnit>;
  private processResolveDataUnit;
  /**
   * Atualiza o cache de dataunits da aplicação.
   * @param {string} oldName - Nome do dataunit que está em cache (será removido).
   * @param {string} dataUnitName - Nome do dataunit que será armazenado em cache.
   * @param {DataUnit} dataUnit - Instância do Dataunit para ser armazenado em cache.
   * @returns {Promise<void>}
   * @async
   */
  updateDataunitCache(oldName: string, dataUnitName: string, dataUnit: DataUnit): Promise<void>;
  /**
   * Obtém um DataUnit do cache ou cria um caso ainda não tenha sido criado.
   * @param {string} entityName - O nome da entidade.
   * @param {string} dataUnitName - O nome para identificar o DataUnit no cache.
   * @param {DataUnit} [parentDataUnit] - O DataUnit pai, se houver.
   * @param {string} [configName] - O nome da configuração a ser usada.
   * @param {string} [resourceID] - O ID do recurso. Se não fornecido, usa o da aplicação.
   * @returns {Promise<DataUnit>} O DataUnit obtido do cache ou recém-criado.
   * @async
   */
  getDataUnit(entityName: string, dataUnitName: string, parentDataUnit?: DataUnit, configName?: string, resourceID?: string): Promise<DataUnit>;
  /**
   * Registra um client event para o DataFetcher da aplicação.
   * @param {String} eventID - Nome do evento para a aplicação se registrar.
   * @param {(clientEvent: IClientEventResponse, dataFetcherReacaller: IDataFetcherRecaller) => void} handler - Função de callback que será chamada quando o client event ocorrer.
   * @returns {Promise<void>}
   * @async
   */
  addClientEvent(eventID: String, handler: (clientEvent: IClientEventResponse, dataFetcherReacaller: IDataFetcherRecaller) => void): Promise<void>;
  /**
   * Remove um client event do DataFetcher da aplicação.
   * @param {String} eventID - Nome do evento a ser removido.
   * @returns {Promise<void>}
   * @async
   */
  removeClientEvent(eventID: String): Promise<void>;
  /**
   * Verifica se um client event está registrado no DataFetcher da aplicação.
   * @param {String} eventID - Nome do evento a ser verificado.
   * @returns {Promise<boolean>} `true` se o evento estiver registrado, `false` caso contrário.
   * @async
   */
  hasClientEvent(eventID: String): Promise<boolean>;
  private get applicationResourceID();
  /**
   * Obtém o resourceID da tela em questão.
   * @returns {Promise<string>} O ID do recurso da aplicação.
   * @async
   */
  getResourceID(): Promise<string>;
  /**
   * Obtém o UserId do usuário logado.
   * @returns {Promise<string>} O ID do usuário.
   * @async
   */
  getUserID(): Promise<string>;
  /**
   * Exibe o diálogo de alerta de acordo com os parâmetros passados.
   * @param {string} title - O título do alerta.
   * @param {string} message - A mensagem do alerta.
   * @param {string} [icon] - O nome do ícone a ser exibido.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<boolean>}
   * @async
   */
  alert(title: string, message: string, icon?: string, options?: MessageOptions): Promise<boolean>;
  /**
   * Exibe o diálogo de erro de acordo com os parâmetros passados.
   * @param {string} title - O título do erro.
   * @param {string} message - A mensagem do erro.
   * @param {string} [icon] - O nome do ícone a ser exibido.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<boolean>}
   * @async
   */
  error(title: string, message: string, icon?: string, options?: MessageOptions): Promise<boolean>;
  /**
   * Exibe o diálogo de sucesso de acordo com os parâmetros passados.
   * @param {string} title - O título da mensagem de sucesso.
   * @param {string} message - A mensagem de sucesso.
   * @param {string} [icon] - O nome do ícone a ser exibido.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<boolean>}
   * @async
   */
  success(title: string, message: string, icon?: string, options?: MessageOptions): Promise<boolean>;
  /**
   * Exibe um diálogo de mensagem comum.
   * @param {string} title - O título da mensagem.
   * @param {string} message - A mensagem.
   * @param {string} [icon] - O nome do ícone a ser exibido.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<boolean>}
   * @async
   */
  message(title: string, message: string, icon?: string, options?: MessageOptions): Promise<boolean>;
  /**
   * Exibe um diálogo de confirmação.
   * @param {string} title - O título da confirmação.
   * @param {string} message - A mensagem da confirmação.
   * @param {string} [icon] - O nome do ícone a ser exibido.
   * @param {DialogType} [dialogType] - O tipo de diálogo.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<boolean>} `true` se confirmado, `false` caso contrário.
   * @async
   */
  confirm(title: string, message: string, icon?: string, dialogType?: DialogType, options?: MessageOptions): Promise<boolean>;
  /**
   * Exibe uma informação efêmera (de segundo plano).
   * @param {string} message - A mensagem a ser exibida.
   * @param {MessageOptions} [options] - Opções adicionais para a mensagem.
   * @returns {Promise<void>}
   * @async
   */
  info(message: string, options?: MessageOptions): Promise<void>;
  /**
   * Obtém os totalizadores da grade.
   * @param {string} name - O nome da configuração de totalizadores.
   * @param {string} resourceID - O ID do recurso.
   * @param {Array<Filter>} filters - A lista de filtros a serem aplicados.
   * @returns {Promise<Map<string, number>>} Um mapa com os nomes dos totalizadores e seus valores.
   * @async
   */
  loadTotals(name: string, resourceID: string, filters: Array<Filter>): Promise<Map<string, number>>;
  /**
   * Obtém a informação se o último carregamento do dataunit foi feito através de um loadByPk.
   * @returns {Promise<boolean>} `true` se foi carregado por PK, `false` caso contrário.
   * @async
   */
  isLoadedByPk(): Promise<boolean>;
  /**
* Remove registro do cache do PreLoader do dataunit.
* Deve ser usado quando existe um dataunit usando loader do application, mas o removeLoader está sendo sobrescrito.
* @param {DataUnit} dataUnit - O DataUnit do qual o registro será removido.
* @param {Array<string>} recordsIDs - Os IDs dos registros a serem removidos.
* @returns {Promise<void>}
* @async
*/
  preloadMangerRemoveRecord(dataUnit: DataUnit, recordsIDs: Array<string>): Promise<void>;
  private getCountSkeleton;
  private getSkeletonRandomWidth;
  /**
   * Emitido quando a aplicação for carregada.
   */
  applicationLoaded: EventEmitter<boolean>;
  /**
   * Emitido ao iniciar a carga do componente.
   */
  applicationLoading: EventEmitter<boolean>;
  private getAuthList;
  private get urlParams();
  private getMessage;
  private get dataUnitFetcher();
  private get totalsFetcher();
  private get pesquisaFetcher();
  private get authFetcher();
  /**
   * Obtém as opções em componentes de pesquisa.
   * Ex.: snk-config-options
   * @param {ISearchArgument} searchArgument - Argumentos da pesquisa.
   * @param {string} fieldName - Nome do campo no DataUnit.
   * @param {DataUnit} dataUnit - Instância do DataUnit.
   * @param {ISearchCtxOptions} [ctxOptions] - Opções de contexto adicionais.
   * @returns {Promise<Array<IOption> | IOption>} Uma lista de opções ou uma única opção.
   * @async
   */
  executeSearch(searchArgument: ISearchArgument, fieldName: string, dataUnit: DataUnit, ctxOptions?: ISearchCtxOptions): Promise<Array<IOption> | IOption>;
  private filterInvalidFields;
  private filterMathFields;
  private builOptionItem;
  /**
   * Realiza a pesquisa de registros
   * Ex.: snk-config-options
   * @param {string} mode - O modo da pesquisa ("ADVANCED" ou outro).
   * @param {string} argument - O argumento da pesquisa.
   * @param {any} options - Opções preparadas para a pesquisa.
   * @returns {Promise<Array<IOption> | IOption>} Uma lista de opções ou uma única opção.
   * @async
   */
  executePreparedSearchPlus(mode: string, argument: string, options: any): Promise<Array<IOption> | IOption>;
  /**
   * Obtém as opções em componentes de pesquisa com base em opções preparadas.
   * Ex.: snk-config-options
   * @param {string} mode - O modo da pesquisa ("ADVANCED" ou outro).
   * @param {string} argument - O argumento da pesquisa.
   * @param {any} options - Opções preparadas para a pesquisa.
   * @returns {Promise<Array<IOption> | IOption>} Uma lista de opções ou uma única opção.
   * @async
   */
  executePreparedSearch(mode: string, argument: string, options: any): Promise<Array<IOption> | IOption>;
  /**
   * Obtém `true` caso a tela esteja em modo de debug.
   */
  isDebugMode(): Promise<boolean>;
  /**
   * Obtém o nome (label) da aplicação.
   * @returns {Promise<string>} O nome da aplicação.
   * @async
   */
  getAppLabel(): Promise<string>;
  /**
   * Adiciona um listener no fetcher de Pesquisa.
   * @param {string} entityName - O nome da entidade.
   * @param {DataUnit} dataUnit - A instância do DataUnit.
   * @param {ISearchListener} listener - O listener a ser adicionado.
   * @returns {Promise<IRemoveSearchListener>} Uma função para remover o listener.
   * @async
   */
  addSearchListener(entityName: string, dataUnit: DataUnit, listener: ISearchListener): Promise<IRemoveSearchListener>;
  /**
    Realiza o import de um JavaScript que está disponível dentro da pasta /public da aplicação.
    @param {string | Array<string>} relativePath - Define o caminho relativo para o arquivo JavaScript a ser importado, ou uma lista de caminhos.
    @returns {Promise<void>}
    @async
   */
  importScript(relativePath: string | Array<string>): Promise<void>;
  /**
   * Retorna o path relativo da aplicação.
   * @returns {Promise<string>} O caminho relativo da aplicação.
   * @async
   */
  getApplicationPath(): Promise<string>;
  /**
   * Retorna o contexto Sankhya-om da aplicação.
   */
  getModuleName(): string;
  /**
   * Com base em um campo realiza um "select distinct" respeitando os
   * filtros atuais do dataUnit e um critério de filtro para a própria
   * coluna.
   * @param {DataUnit} dataUnit - A instância do DataUnit.
   * @param {string} fieldName - O nome do campo para o select distinct.
   * @param {string} argument - O argumento de filtro para a coluna.
   * @returns {Promise<Array<any>>} Uma lista de valores distintos.
   * @async
   */
  executeSelectDistinct(dataUnit: DataUnit, fieldName: string, argument: string): Promise<Array<any>>;
  /**
   * Retorna a instância do DataFetcher utilizado pelo application.
   * @returns {Promise<DataFetcher>} O DataFetcher da aplicação.
   * @async
   */
  getDataFetcher(): Promise<DataFetcher>;
  /**
  * Retorna uma promise que será resolvida quando o snk-application estiver carregado e registrado no ApplicationContext.
  * @returns {Promise<SnkApplication>} O componente SnkApplication carregado.
  * @async
  */
  whenApplicationReady(): Promise<SnkApplication>;
  /**
   * Atribui valor para parâmetros de contexto no componente de pesquisa.
   * @param {string} name - Nome do parâmetro.
   * @param {string} value - String conversível de acordo com o tipo do parâmetro.
   * @returns {Promise<void>}
   * @async
   */
  setSearchFilterContext(name: string, value: string): Promise<void>;
  private clearContent;
  clearPopUpTitle(): Promise<void>;
  setPopUpTitle(title: string): Promise<void>;
  private pkChangeListener;
  private getResourceIdFromToken;
  private defaultLoadByPK;
  private loadDataWithPKFilter;
  private getFirstDataUnitFromDOM;
  private getFilterParamsFromPkObject;
  private getDefaultDataTypeLoadByPK;
  private buildFilterExpressionByPkObject;
  private showNewVersionPopup;
  private newVersionPopupEventListener;
  private handleShowNewVersionPopup;
  private hasToShowNewVersionPopup;
  private registerPkChangeListener;
  componentWillLoad(): void;
  setLayoutFormConfig(): Promise<void>;
  connectedCallback(): void;
  disconnectedCallback(): void;
  componentDidLoad(): Promise<void>;
  showScrimApp(active: boolean): Promise<void>;
  private changeTemplateSkeleton;
  /**
   * Marca a aplicação para recarregar, opcionalmente especificando um tipo de esqueleto de carregamento.
   * @param {TEMPLATES_SKELETON} [templateSkeletonType] - O tipo de esqueleto de carregamento a ser exibido.
   * @returns {Promise<void>}
   * @async
   */
  markToReload(templateSkeletonType?: TEMPLATES_SKELETON): Promise<void>;
  /**
   * Adiciona um bloqueio de carregamento à aplicação.
   * @param {boolean} [forceReady=false] - Se `true`, força a aplicação para o estado "não pronto" antes de adicionar o bloqueio.
   * @param {TEMPLATES_SKELETON} [templateSkeletonType] - O tipo de esqueleto de carregamento a ser exibido.
   * @returns {Promise<string>} O ID do bloqueio adicionado.
   * @async
   */
  addLoadingLock(forceReady?: boolean, templateSkeletonType?: TEMPLATES_SKELETON): Promise<() => void>;
  private resolveApplicationReady;
  private stopTimeoutLockManager;
  private checkTimeoutLimitLockManager;
  private initKeyboardManager;
  private removeShortcuts;
  private renderLoadingSkeleton;
  private getLoadingVisibilityStyle;
  private getSkeletonTemplateGrid;
  private getSkeletonTemplateGridWithSidebar;
  private getSkeletonTemplateGridWithPanel;
  private getSkeletonTemplateFormWithSidebar;
  private getSpinnerLoadingDefault;
  render(): any;
}
type LoadByPkHandler = (objPK: {
  pk: Record<string, any>;
}, redirectFrom?: string) => void;
declare class PendingPromise {
  resolve: Function;
  reject: Function;
  constructor(resolve: Function, reject: Function);
}
export interface ISearchCtxOptions {
  allowsNonAnalytic?: boolean;
  useSearchPlus?: boolean;
  [key: string]: any;
}
export {};
