import { IOption } from '@sankhyalabs/ezui/dist/types/components/ez-combo-box/ez-combo-box';
import { PESQUISA_VIEW_MODE } from './pesquisaHelper';
export declare class SnkPesquisa {
  private _application;
  private _messagesBuilder;
  private _textInput;
  private _pesquisaTree;
  private _mdByName;
  private _startHighlightTag;
  private _endHighlightTag;
  private _specialCharsRegex;
  private _charsWithAccentuation;
  private _charsWithoutAccentuation;
  private _changeDeboucingTimeout;
  private _limitCharsToSearch;
  private _deboucingTime;
  private _gridMetadata;
  private _gridDataSource;
  private _pkField;
  private _descriptionField;
  private pesquisaFetcher;
  private _viewStack;
  private _element;
  private _itemList;
  private _startLoading;
  private _presentationMode;
  _currentView: PESQUISA_VIEW_MODE;
  private _valideDataSource;
  /**
   * Função responsável em carregar os itens do componente snk-pesquisa.
   * Deve retornar uma Promise com os dados encontrados.
   *
   * @type {(text: string) => Promise<any>}
   * @param text Texto utilizado como argumento de pesquisa.
   * @returns Promise com os dados da pesquisa.
   * @example
   * searchLoader={(text) => fetchItems(text)}
   */
  searchLoader: (text: string) => Promise<any>;
  /**
   * Função responsável por carregar a árvore hierárquica do componente.
   * Opcional. Caso não seja fornecida, o modo árvore não estará disponível.
   *
   * @type {(text: string) => Promise<any>}
   * @param text Texto utilizado como argumento de pesquisa para a árvore.
   * @returns Promise com os dados da árvore.
   */
  treeLoader?: (text: string) => Promise<any>;
  /**
   * Função disparada ao selecionar um item da pesquisa.
   *
   * @type {(option: IOption) => void}
   * @param option Item selecionado.
   * @returns void
   * @example
   * selectItem={(option) => handleSelect(option)}
   */
  selectItem: (option: IOption) => void;
  /**
   * Nome da entidade sobre a qual a pesquisa será realizada.
   *
   * @type {string}
   * @example
   * entityName="Produto"
   */
  entityName: string;
  /**
   * Argumento utilizado ao chamar a função searchLoader.
   * Pode ser alterado externamente.
   *
   * @type {string}
   * @mutable
   * @example
   * argument="Texto para pesquisa"
   */
  argument: string;
  /**
   * Define se a popup de pesquisa terá ou não modo hierárquico.
   *
   * @type {boolean}
   * @default false
   * @example
   * isHierarchyEntity={true}
   */
  isHierarchyEntity: boolean;
  /**
   * Define se permite a seleção de itens não analíticos.
   *
   * @type {boolean}
   * @default false
   * @example
   * allowsNonAnalytic={true}
   */
  allowsNonAnalytic: boolean;
  observeArgument(): void;
  private clearSearch;
  private buildDetails;
  private buildFirstFields;
  private doSearch;
  private processSearchResponse;
  private buildCardItemList;
  private filterFieldsMetadata;
  private removeAtIndex;
  private removeReference;
  private indexOf;
  private equals;
  private find;
  /**
    matchFields-> array __matchFields do data
    value -> termo que está sendo pesquisao
    fieldMD -> metadados retornados pelo serviço de pesquisa
    forceMatch -> força a pesquisa mesmo que não tenha __matchFields no metadado
  */
  private highlightValue;
  private replaceHtmlEntities;
  private replaceAccentuatedChars;
  private replaceToSpace;
  private isIn;
  private getSpecialCharacters;
  private removeSpecialCharacters;
  private replaceAll;
  private getArgumentNumber;
  private createOption;
  private onChangeValue;
  private clearDeboucingTimeout;
  private onClickSearch;
  private getMessageView;
  componentWillLoad(): Promise<void>;
  componentDidLoad(): Promise<void>;
  private getMessage;
  private handleChangeViewMode;
  private chooseViewMode;
  private hideLimitMessage;
  private hideRecordsMessage;
  private getButtonModeInfo;
  render(): any;
}
