import { DataUnit, FieldDescriptor } from '@sankhyalabs/core';
import { EventEmitter } from '../../../stencil-public-runtime';
import { IMultiSelectionListDataSource } from '../../ez-multi-selection-list/interfaces/IMultiSelectionListDataSource';
import { IMultiSelectionOption } from '../../ez-multi-selection-list/interfaces/IMultiSelectionOption';
export declare class FilterColumn {
  private ezPopoverElement;
  private ezMultiSelectionList;
  private i18n;
  applyFilterColumnOptions: EventEmitter<IAppliedFilterColumnOptions>;
  opened: boolean;
  columnName: string;
  columnLabel: string;
  gridHeaderHidden: boolean;
  noHeaderTaskBar: boolean;
  dataSource: IMultiSelectionListDataSource;
  dataUnit: DataUnit;
  options: IMultiSelectionOption[];
  selectedItems: IMultiSelectionOption[];
  fieldDescriptor: FieldDescriptor;
  useOptions: boolean;
  isTextSearch: boolean;
  hide(): Promise<void>;
  /**
   * Abre o filtro de coluna.
   * @Params IFilterColumnConfigs informações para configurar o filtro
   */
  show(configs: IFilterColumnConfigs): Promise<void>;
  private buildIsTextSearch;
  private clearConfigs;
  private canShow;
  private submit;
  private changeSelectedItems;
  private hasToUseOptions;
  private isCheckBoxOrSwitch;
  private setOptions;
  private buildOptions;
  private handleEzVisibilityChange;
  componentWillLoad(): Promise<void>;
  render(): any;
}
export interface IFilterColumnConfigs {
  columnName: string;
  columnLabel: string;
  leftPosition: number;
  filteredOptions?: IMultiSelectionOption[];
  fromIcon?: boolean;
  fieldDescriptor?: FieldDescriptor;
}
export interface IAppliedFilterColumnOptions {
  field: string;
  values: IMultiSelectionOption[];
}
