import { FilterManager, KlevuFilterResultOptions, KlevuFilterResultSlider } from "@klevu/core";
import { EventEmitter } from "../../stencil-public-runtime";
import { KlevuColorSwatchOverride } from "../klevu-facet-list/klevu-facet-list";
export type KlevuFacetMode = "checkbox" | "radio";
export type KlevuSelectionUpdatedEventDetail = {
  manager: FilterManager;
  filter?: {
    key: string;
    name: string;
    selected?: boolean;
    start?: string;
    end?: string;
  };
};
/**
 * Rendering items of single facet with all its options or a slider.
 *
 * Manager property must be set for this component to work.
 *
 * @csspart facet-heading Heading of the facet
 * @csspart facet-radio The radio button for selection of facet
 * @csspart facet-more-button The button to show more results
 * @csspart facet-option-count The count of results per option
 */
export declare class KlevuFacet {
  #private;
  el: HTMLKlevuFacetElement;
  /**
   * From which options to build facet. Single option value from Klevu SDK FilterManager. Either this or slider must be set.
   */
  option?: KlevuFilterResultOptions;
  /**
   * From which slider to build facet.
   */
  slider?: KlevuFilterResultSlider;
  /**
   * Originating filter manager which to modify. This is the most important property of the component.
   * It will be used to modify the filter state for queries.
   */
  manager: FilterManager;
  /**
   * Which mode should facets be in
   */
  mode: KlevuFacetMode;
  /**
   * Set predefined order for options. Unfound values are in original order in end
   */
  customOrder?: string[];
  /**
   * Should the facet be in accordion
   */
  accordion?: boolean;
  /**
   * Start accordion open
   */
  accordionStartOpen?: boolean;
  /**
   * Override label text with custom value
   */
  labelOverride?: string;
  tMore: string;
  tAll: string;
  /**
   * Converts the color filters to swatches
   */
  useColorSwatch?: boolean;
  /**
   * Specific overrides for individual color swatch.
   * The overrides can be colors (hex or valid css colors) or a valid url to load.
   * ImageUrl takes precedence over color when both are specified.
   */
  colorSwatchOverrides?: KlevuColorSwatchOverride;
  /**
   * Show all options
   */
  showAll: boolean;
  /**
   * When filter selection is updated
   */
  klevuFilterSelectionUpdate: EventEmitter<KlevuSelectionUpdatedEventDetail>;
  filterSelectionUpdate(event: any): void;
  render(): any;
}
