import { FilterManager, KlevuFetchModifer, KlevuKMCRecommendationOptions, KlevuMerchandisingOptions, KlevuQueryResult, KlevuSearchOptions, KlevuSearchSorting, KlevuSuggestionResult } from "@klevu/core"; import { EventEmitter } from "../../stencil-public-runtime"; import { KlevuProductCustomEvent } from "../../components"; import { KlevuProductOnProductClick } from "../klevu-product/klevu-product"; export type AllQueryOptions = KlevuMerchandisingOptions | KlevuKMCRecommendationOptions | KlevuSearchOptions; /** * __klevu-query__ component is a special kind of component that makes queries to Klevu defined by the * __type__ parameter. It also listens to clicks to __klevu-product__ -component and sends analytical data to Klevu * based on that. This components gives you ability to create any kind of UI with Klevu components or by using your own * components! Just use __klevu-query__ to fetch the data and __klevu-product__ to render the product * cards. Whole content of __klevu-product__ can be replaced with your content. */ export declare class KlevuQuery { #private; /** * What kind of query */ type: "search" | "merchandising" | "recommendation"; /** * By default component will fetch results on init or on property change. This can be disabled with this prop. */ disableInitialFetch?: boolean; /** * When searching should search suggestions be fetched */ searchSuggestions?: boolean; /** * Should search view event be sent. View event is important for analytical cases. * In case of a search this should be used only when creating a landing page for search. */ sendSearchViewEvent?: boolean; /** * Object to override and settings on search options */ options?: AllQueryOptions; /** * How to sort */ sort?: KlevuSearchSorting; /** * What's the limit on page */ limit?: number; /** * Offset of results */ offset?: number; /** * Fetch filters on the request */ filterGet?: boolean; /** * To how many filters limit results to */ filterCount?: number; /** * Should get price filters */ filterWithPrices?: boolean; /** * Which category to do merchandising. Required for "merchandising" type */ category?: string; /** * Which category title to have on page. Required for "merchandising" type */ categoryTitle?: string; /** * What to search. Required for "search" type. */ searchTerm?: string; /** * Which recommendation to fetch from Klevu Merchant Center. Required for "recommendation" type */ recommendationId?: string; /** * Which products are in cart. Required for some recommendation types */ recommendationCartProductIds?: string[]; /** * Which product is currently being viewed. Required for some recommendation types */ recommendationCurrentProductId?: string; /** * What is the item group id of the product being viewed. Required for some recommendation types */ recommendationItemGroupId?: string; /** * Which category path to use for recommendation. Required for some recommendation types */ recommendationCategoryPath?: string; /** * @klevu/core FilterManager used for filters. If none is set, new one is created */ manager: FilterManager; /** * Should component listen to changes to filters */ updateOnFilterChange?: boolean; /** * Override default modifiers. This will disable default modifiers and ones set by filter props */ overrideModifiers?: KlevuFetchModifer[]; onPropertyChange(): void; /** * Force component to fetch results. This is called automatically when properties change. */ fetch(): Promise; klevuQueryResult: EventEmitter<{ result: KlevuQueryResult; suggestions?: KlevuSuggestionResult; manager: FilterManager; }>; connectedCallback(): Promise; disconnectedCallback(): void; onProductClick(event: KlevuProductCustomEvent): void; render(): any; }