import { FilterManager, KlevuFilterResultOptions, KlevuFilterResultSlider, KlevuFilterResultRating } from "@klevu/core";
import { EventEmitter } from "../../stencil-public-runtime";
import { KlevuFacetMode } from "../klevu-facet/klevu-facet";
/**
 * Render all facets of filter manager
 *
 * @cssprop --klevu-face-list-width 200px Width of the facet listing
 */
export declare class KlevuFacetList {
  #private;
  el: HTMLKlevuFacetListElement;
  /**
   * Filter managet from which the list is built from
   */
  manager: FilterManager;
  /**
   * Set mode for facets or if object is passed then define per key
   */
  mode?: KlevuFacetMode | {
    [key: string]: KlevuFacetMode;
  };
  /**
   * Custom order keys for every facet
   */
  customOrder?: {
    [key: string]: string[];
  };
  /**
   * Should use accordions to for facets
   */
  accordion?: boolean;
  /**
   * Display "apply filters" button in the end. And do not apply filters until this button is pressed
   */
  useApplyButton?: boolean;
  /**
   * Button text for Apply button when using `useApplyButton`
   */
  applyButtonText: string;
  /**
   * Button text for Clear button when using `useApplyButton`
   */
  clearButtonText: string;
  /**
   * Default price label for sliders
   */
  defaultPriceLabel: string;
  /**
   * When filters are applied
   */
  klevuApplyFilters: EventEmitter<void>;
  filters: Array<KlevuFilterResultOptions | KlevuFilterResultSlider | KlevuFilterResultRating>;
  connectedCallback(): void;
  filtersApplied(): void;
  filterSelectionUpdate(): void;
  render(): any;
}
