import { KeyboardManager, MaskFormatter } from '@sankhyalabs/core';
import { EventEmitter } from '../../../stencil-public-runtime';
import FilterType from '../types/filter-type.enum';
import FilterItemType from './filter-item-type.enum';
export declare class SnkFilterItem {
  _filterItemElement: HTMLElement;
  _chipElement: HTMLEzChipElement;
  _rightIconElement: HTMLElement;
  _leftIconElement: HTMLElement;
  _popover: HTMLEzPopoverCoreElement;
  _filterDetail: HTMLSnkFilterDetailElement;
  _idSnkFilterDetail: string;
  _keyboardManager: KeyboardManager | undefined;
  detailIsVisible: boolean;
  /**
   * Define as configurações do componente snk-filter-item.
   */
  config: SnkFilterItemConfig;
  /**
   * Usado pra flexibilizar os verbetes e mensagens de acordo com o SnkMessageBuilder.
   */
  getMessage: (key: string, props?: any) => string;
  /**
   * Usado para controlar a visibilidade dos chips de filtros
   */
  showChips: boolean;
  /**
   * Emitido quando o detalhe de um item da lista é aberto ou fechado.
   */
  visibleChanged: EventEmitter<boolean>;
  /**
   * Emitido quando há uma alteração nos filtros.
   */
  filterChange: EventEmitter<SnkFilterItemConfig>;
  observeDetailIsVisible(value: boolean): void;
  /**
   * Emitido quando o estado do filtro é alterado.
   */
  filterChangeListener(_event: CustomEvent<SnkFilterItemConfig>): void;
  /**
   * Exibe os detalhes de um item da lista.
   */
  showUp(open?: boolean): Promise<void>;
  /**
   * Oculta os detalhes de um item da lista.
   */
  hideDetail(): Promise<void>;
  private getConfigChanges;
  private clearFilter;
  private togglePopover;
  getLabel(isTooltipLabel?: boolean): any;
  private getLabelFromCheckedOptions;
  calculateActiveCount(groupedItems: Array<SnkFilterItemConfig>): number;
  componentDidLoad(): void;
  canClearFilter(): any;
  getRightIconName(): "close" | "chevron-up" | "chevron-down";
  getLeftIconName(): "calendar" | "tune";
  hasActiveElements(value: {
    elements?: Array<ItemMultiList>;
  } | Array<ItemMultiList>): boolean;
  hasActiveValue(config: SnkFilterItemConfig): boolean;
  getEnabledChip(): boolean;
  private handleVisibilityPopover;
  private getCustomMessage;
  private hasValue;
  private getTooltipMessage;
  private getTypeChip;
  private initKeyboardManager;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): any;
}
interface ItemMultiList {
  id: string;
  label: string;
  check: boolean;
}
export interface SnkFilterItemConfig {
  id: string;
  label: string;
  detailTitle: string;
  detailModal: string;
  type: FilterItemType;
  filterType: FilterType;
  visible: boolean;
  props?: any;
  value?: any;
  hardFixed?: boolean;
  fixed?: boolean;
  enabled?: boolean;
  removalBlocked?: boolean;
  groupedItems: Array<SnkFilterItemConfig>;
  originOrder?: number;
  mask?: typeof MaskFormatter.DEFAULT_MASKS;
  required?: boolean;
  hasError?: boolean;
  defaultMessage?: string;
  requiredMessage?: string;
  disabledMessage?: string;
}
export {};
