import { IPersonalizedFilter } from '../../snk-personalized-filter/interfaces/IPersonalizedFilter';
import { SnkFilterItemConfig } from '../filter-item/snk-filter-item';
export declare class SnkFilterModal {
  private _modalTitle;
  private _cancelButtonLabel;
  private _okButtonLabel;
  private _isUserSup;
  private _defaultFilter;
  private _application;
  private filters;
  _element: HTMLElement;
  filtersWithError: string[];
  /**
   * Usado pra flexibilizar os verbetes e mensagens de acordo com o SnkMessageBuilder.
   */
  getMessage: (key: string, props?: any) => string;
  /**
   * Nome da configuração. Serve para distinguir várias instâncias do componente.
   */
  configName: string;
  /**
   * Filtros a serem apresentados
   */
  filterConfig: Array<SnkFilterItemConfig>;
  /**
   * Define se o modal está aberto ou não.
   */
  opened: boolean;
  /**
   * Ação executada ao aplicar os filtros
   */
  applyFilters: (updatedFilterConfig: Array<SnkFilterItemConfig>) => void;
  /**
   * Ação disparada ao fechar o modal
   */
  closeModal: () => void;
  /**
   * Ação executada ao adicionar um filtro personalizado
   */
  addPersonalizedFilter: (isDefault?: boolean) => void;
  /**
   * Ação executada ao editar um filtro personalizado
   */
  editPersonalizedFilter: (id: string, isDefault?: boolean) => void;
  /**
   * Ação executada ao deletar um filtro personalizado
   */
  deletePersonalizedFilter: (filter: IPersonalizedFilter, configName: string, isDefault?: boolean) => void;
  /**
   * Guarda filtros a serem deletados no Apply do modal
  */
  filtersToDelete: IPersonalizedFilter[];
  /**
   * Guarda o filtro a ser deletado no Apply do modal
  */
  filterDefaultToDelete: SnkFilterItemConfig;
  /**
  * Desabilita a apresentação da opção de filtros personalizados na filter bar (chip de filtros)
  * e no modal lateral de filtros (container de filtros personalizados).
  */
  disablePersonalizedFilter: boolean;
  /**
   * @description Intercepta a configuração dos filtros antes de serem aplicadas.
   * @param {Array<SnkFilterItemConfig>} config - Lista de configurações de filtros.
   * @returns {Array<SnkFilterItemConfig>} Retorna a lista de configurações de filtros.
   */
  filterCustomConfigInterceptor?: (config: Array<SnkFilterItemConfig>) => Array<SnkFilterItemConfig>;
  filterConfigChangeHandler(newValue: Array<SnkFilterItemConfig>): void;
  /**
   * Emitido quando um filtro personalizado é deletado.
   */
  deletePersonalizedFilterListener(event: CustomEvent<IPersonalizedFilter>): void;
  private getCustomMessage;
  private handleClearAll;
  private handleClearOthersFilters;
  private handleClearCustomFilters;
  private clearAllCustomFilter;
  private hasChangeToSave;
  private handleClose;
  private handleApplyFilters;
  private isValidCustomFilter;
  private modalActionListener;
  private handleFilterChange;
  private handleClearFilterList;
  private handleClearSigleFilter;
  private uncheckFilterValues;
  private validateFilters;
  private renderFilterItem;
  private isDefaultFilterNumberVariation;
  private mountFiltersLines;
  private renderFilterLine;
  private getIformedFiltersCount;
  private renderCollapsibleFilterBox;
  handleDeleteFilter(): void;
  private handleActionSelectedDefaultFilter;
  getCustomFilter(filters: SnkFilterItemConfig[]): SnkFilterItemConfig[];
  getDefaultFilter(filters: SnkFilterItemConfig[]): SnkFilterItemConfig;
  componentWillLoad(): Promise<void>;
  componentWillRender(): void;
  componentDidLoad(): void;
  render(): any;
}
