UNPKG

@relewise/web-components

Version:

Relewise is a next generation personalization SaaS-platform, which offers functionality within product- and content recommendations and personalized search. Our official Web Components provide simple and easy components for rendering personalized experien

1,029 lines (898 loc) 43.6 kB
import { BooleanAvailableFacetValue } from '@relewise/client'; import { BrandFacet } from '@relewise/client'; import { BrandFacetResult } from '@relewise/client'; import { BrandNameAndIdResultAvailableFacetValue } from '@relewise/client'; import { CategoryFacet } from '@relewise/client'; import { CategoryFacetResult } from '@relewise/client'; import { CategoryHierarchyFacet } from '@relewise/client'; import { CategoryHierarchyFacetResult } from '@relewise/client'; import { CategoryNameAndIdResultAvailableFacetValue } from '@relewise/client'; import { ContentAssortmentFacet } from '@relewise/client'; import { ContentAssortmentFacetResult } from '@relewise/client'; import { ContentDataBooleanValueFacet } from '@relewise/client'; import { ContentDataBooleanValueFacetResult } from '@relewise/client'; import { ContentDataDoubleRangeFacet } from '@relewise/client'; import { ContentDataDoubleRangeFacetResult } from '@relewise/client'; import { ContentDataDoubleRangesFacet } from '@relewise/client'; import { ContentDataDoubleRangesFacetResult } from '@relewise/client'; import { ContentDataDoubleValueFacet } from '@relewise/client'; import { ContentDataDoubleValueFacetResult } from '@relewise/client'; import { ContentDataIntegerValueFacet } from '@relewise/client'; import { ContentDataIntegerValueFacetResult } from '@relewise/client'; import { ContentDataObjectFacet } from '@relewise/client'; import { ContentDataObjectFacetResult } from '@relewise/client'; import { ContentDataStringValueFacet } from '@relewise/client'; import { ContentDataStringValueFacetResult } from '@relewise/client'; import { ContentRecommendationRequest } from '@relewise/client'; import { ContentRecommendationResponse } from '@relewise/client'; import { ContentResult } from '@relewise/client'; import { ContentsViewedAfterViewingContentRequest } from '@relewise/client'; import { ContentsViewedAfterViewingMultipleContentsRequest } from '@relewise/client'; import { ContentsViewedAfterViewingMultipleProductsRequest } from '@relewise/client'; import { ContentsViewedAfterViewingProductRequest } from '@relewise/client'; import { CSSResult } from 'lit'; import { DataObjectBooleanValueFacet } from '@relewise/client'; import { DataObjectBooleanValueFacetResult } from '@relewise/client'; import { DataObjectDoubleRangeFacet } from '@relewise/client'; import { DataObjectDoubleRangeFacetResult } from '@relewise/client'; import { DataObjectDoubleRangesFacet } from '@relewise/client'; import { DataObjectDoubleRangesFacetResult } from '@relewise/client'; import { DataObjectDoubleValueFacet } from '@relewise/client'; import { DataObjectDoubleValueFacetResult } from '@relewise/client'; import { DataObjectFacet } from '@relewise/client'; import { DataObjectFacetResult } from '@relewise/client'; import { DataObjectStringValueFacet } from '@relewise/client'; import { DataObjectStringValueFacetResult } from '@relewise/client'; import { DecimalNullableChainableRangeAvailableFacetValue } from '@relewise/client'; import { FacetBuilder } from '@relewise/client'; import { FilterBuilder } from '@relewise/client'; import { Int32AvailableFacetValue } from '@relewise/client'; import { LitElement } from 'lit'; import { nothing } from 'lit'; import { PopularContentsRequest } from '@relewise/client'; import { PopularProductsRequest } from '@relewise/client'; import { PriceRangeFacet } from '@relewise/client'; import { PriceRangeFacetResult } from '@relewise/client'; import { PriceRangesFacet } from '@relewise/client'; import { PriceRangesFacetResult } from '@relewise/client'; import { ProductAssortmentFacet } from '@relewise/client'; import { ProductAssortmentFacetResult } from '@relewise/client'; import { ProductCategoryAssortmentFacet } from '@relewise/client'; import { ProductCategoryAssortmentFacetResult } from '@relewise/client'; import { ProductCategoryDataBooleanValueFacet } from '@relewise/client'; import { ProductCategoryDataBooleanValueFacetResult } from '@relewise/client'; import { ProductCategoryDataDoubleRangeFacet } from '@relewise/client'; import { ProductCategoryDataDoubleRangeFacetResult } from '@relewise/client'; import { ProductCategoryDataDoubleRangesFacet } from '@relewise/client'; import { ProductCategoryDataDoubleRangesFacetResult } from '@relewise/client'; import { ProductCategoryDataDoubleValueFacet } from '@relewise/client'; import { ProductCategoryDataDoubleValueFacetResult } from '@relewise/client'; import { ProductCategoryDataObjectFacet } from '@relewise/client'; import { ProductCategoryDataObjectFacetResult } from '@relewise/client'; import { ProductCategoryDataStringValueFacet } from '@relewise/client'; import { ProductCategoryDataStringValueFacetResult } from '@relewise/client'; import { ProductCategoryResult } from '@relewise/client'; import { ProductCategorySearchBuilder } from '@relewise/client'; import { ProductDataBooleanValueFacet } from '@relewise/client'; import { ProductDataBooleanValueFacetResult } from '@relewise/client'; import { ProductDataDoubleRangeFacet } from '@relewise/client'; import { ProductDataDoubleRangeFacetResult } from '@relewise/client'; import { ProductDataDoubleRangesFacet } from '@relewise/client'; import { ProductDataDoubleRangesFacetResult } from '@relewise/client'; import { ProductDataDoubleValueFacet } from '@relewise/client'; import { ProductDataDoubleValueFacetResult } from '@relewise/client'; import { ProductDataIntegerValueFacet } from '@relewise/client'; import { ProductDataIntegerValueFacetResult } from '@relewise/client'; import { ProductDataObjectFacet } from '@relewise/client'; import { ProductDataObjectFacetResult } from '@relewise/client'; import { ProductDataStringValueFacet } from '@relewise/client'; import { ProductDataStringValueFacetResult } from '@relewise/client'; import { ProductFacetResult } from '@relewise/client'; import { ProductRecommendationRequest } from '@relewise/client'; import { ProductRecommendationResponse } from '@relewise/client'; import { ProductResult } from '@relewise/client'; import { ProductSearchBuilder } from '@relewise/client'; import { ProductSearchResponse } from '@relewise/client'; import { ProductSettingsRecommendationBuilder } from '@relewise/client'; import { ProductsViewedAfterViewingContentRequest } from '@relewise/client'; import { ProductsViewedAfterViewingProductRequest } from '@relewise/client'; import { PropertyValues } from 'lit'; import { PurchasedWithMultipleProductsRequest } from '@relewise/client'; import { PurchasedWithProductRequest } from '@relewise/client'; import { RecentlyPurchasedFacet } from '@relewise/client'; import { RecommendationRequestBuilder } from '@relewise/client'; import { Recommender } from '@relewise/client'; import { RedirectResult } from '@relewise/client'; import { RelevanceModifierBuilder } from '@relewise/client'; import { RelewiseClientOptions } from '@relewise/client'; import { Searcher } from '@relewise/client'; import { SearchTermPredictionResult } from '@relewise/client'; import { SelectedCategoryPropertiesSettings } from '@relewise/client'; import { SelectedContentPropertiesSettings } from '@relewise/client'; import { SelectedProductCategoryPropertiesSettings } from '@relewise/client'; import { SelectedProductPropertiesSettings } from '@relewise/client'; import { SelectedVariantPropertiesSettings } from '@relewise/client'; import { Settings } from '@relewise/client'; import { StringAvailableFacetValue } from '@relewise/client'; import { TargetedRecommendationConfigurations as TargetedRecommendationConfigurations_2 } from 'src/targetedRecommendationConfigurations'; import { TemplateResult } from 'lit-html'; import { TemplateResult as TemplateResult_2 } from 'lit'; import { Tracker } from '@relewise/client'; import { unsafeHTML } from 'lit-html/directives/unsafe-html.js'; import { User } from '@relewise/client'; import { VariantSpecificationFacet } from '@relewise/client'; import { VariantSpecificationFacetResult } from '@relewise/client'; export declare function addFilters(filters: Partial<Filters>): void; export declare class App { useRecommendations(): App; useBehavioralTracking(): App; updateContextSettings(contextSettings: Partial<ContextSettings>): App; useSearch(options?: RelewiseUISearchOptions): App; registerSearchTarget(target: string, configuration: TargetedSearchConfiguration): App; registerRecommendationTarget(target: string, configuration: TargetedRecommendationConfiguration): App; } export declare type BatchingContextValue = { requests: { request: ProductRecommendationRequest; id: EventTarget | null; result?: ProductRecommendationResponse | null; }[]; }; export declare class BrandView extends LitElement { brandId: string | null; connectedCallback(): Promise<void>; } export declare class Button extends LitElement { buttonText: string | null; handleClick: () => void; connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ChecklistBooleanValueFacet extends ChecklistFacetBase { result: ProductDataBooleanValueFacetResult | null; handleChange(e: Event, item: BooleanAvailableFacetValue): void; getOptionDisplayValue(item: BooleanAvailableFacetValue): string; shouldOptionBeChecked(item: BooleanAvailableFacetValue): boolean; } export declare type CheckListFacet = BrandFacetResult | CategoryFacetResult | ProductDataStringValueFacetResult | ProductDataBooleanValueFacetResult | ProductAssortmentFacetResult | PriceRangesFacetResult | ProductDataDoubleRangesFacetResult | ProductDataDoubleValueFacetResult; export declare abstract class ChecklistFacetBase extends LitElement { abstract handleChange(e: Event, item: CheckListFacetValue): void; abstract getOptionDisplayValue(item: CheckListFacetValue): string; abstract shouldOptionBeChecked(item: CheckListFacetValue): boolean; result: CheckListFacet | null; label: string; selectedValues: string[]; showAll: boolean; clearSelectedValuesBound: () => void; connectedCallback(): void; disconnectedCallback(): void; clearSelectedValues(): void; updateUrlState(searchForProducts?: boolean): void; render(): TemplateResult<1> | typeof nothing | undefined; static styles: CSSResult[]; } export declare type CheckListFacetValue = BrandNameAndIdResultAvailableFacetValue | StringAvailableFacetValue | BooleanAvailableFacetValue | Int32AvailableFacetValue | DecimalNullableChainableRangeAvailableFacetValue; export declare class ChecklistNumberValueFacet extends ChecklistFacetBase { result: ProductAssortmentFacetResult | ProductDataDoubleValueFacetResult | null; handleChange(e: Event, item: Int32AvailableFacetValue): void; getOptionDisplayValue(item: Int32AvailableFacetValue): string; shouldOptionBeChecked(item: BrandNameAndIdResultAvailableFacetValue | StringAvailableFacetValue | BooleanAvailableFacetValue | Int32AvailableFacetValue): boolean; } export declare class ChecklistObjectValueFacet extends ChecklistFacetBase { result: BrandFacetResult | CategoryFacetResult | null; handleChange(e: Event, item: BrandNameAndIdResultAvailableFacetValue | CategoryNameAndIdResultAvailableFacetValue): void; getOptionDisplayValue(item: BrandNameAndIdResultAvailableFacetValue | CategoryNameAndIdResultAvailableFacetValue): string; shouldOptionBeChecked(item: BrandNameAndIdResultAvailableFacetValue | CategoryNameAndIdResultAvailableFacetValue): boolean; } export declare class ChecklistRangesObjectValueFacet extends ChecklistFacetBase { result: PriceRangesFacetResult | ProductDataDoubleRangesFacetResult | null; handleChange(e: Event, item: DecimalNullableChainableRangeAvailableFacetValue): void; getOptionDisplayValue(item: DecimalNullableChainableRangeAvailableFacetValue): string; shouldOptionBeChecked(item: DecimalNullableChainableRangeAvailableFacetValue): boolean; } export declare class ChecklistStringValueFacet extends ChecklistFacetBase { result: ProductDataStringValueFacetResult | null; handleChange(e: Event, item: StringAvailableFacetValue): void; getOptionDisplayValue(item: StringAvailableFacetValue): string; shouldOptionBeChecked(item: StringAvailableFacetValue): boolean; } export declare function clearUrlState(): void; export declare type CommonTemplateHelpers = TemplateHelpers & { unsafeHTML: typeof unsafeHTML; nothing: typeof nothing; user: User | null; }; export declare class ContentCategoryView extends LitElement { idPath: string | null; connectedCallback(): Promise<void>; } export declare abstract class ContentRecommendationBase extends LitElement { target: string | null; numberOfRecommendations: number; displayedAtLocation?: string; content: ContentResult[] | null; private user; abstract fetchContent(): Promise<ContentRecommendationResponse | undefined> | undefined; abstract buildRequest(): Promise<ContentRecommendationRequest | undefined>; fetchAndUpdateContentBound: () => Promise<void>; connectedCallback(): Promise<void>; disconnectedCallback(): void; fetchAndUpdateContent(): Promise<void>; render(): TemplateResult<1> | undefined; static styles: CSSResult; } export declare class ContentSentimentButtons extends LitElement { user: User | null; content: ContentResult | null; private sentiment; private isWorking; private handleUserEngagementChanged; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changed: PropertyValues<this>): void; render(): TemplateResult<1> | typeof nothing; private onLikeClick; private onDislikeClick; private submitEngagement; private dispatchChangeEvent; static styles: CSSResult; } export declare interface ContentTemplateExtensions { html: (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult_2<1>; helpers: CommonTemplateHelpers; } export declare class ContentTile extends LitElement { content: ContentResult | null; private user; protected createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; render(): TemplateResult<1> | undefined; renderTileContent(content: ContentResult): TemplateResult<1>; private getContentImageAlt; static defaultStyles: CSSResult[]; } export declare class ContentView extends LitElement { contentId: string | null; connectedCallback(): Promise<void>; } export declare class ContentViewedAfterViewingContent extends ContentRecommendationBase { contentId: string | undefined; fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<ContentsViewedAfterViewingContentRequest | undefined>; } export declare class ContentViewedAfterViewingMultipleContent extends ContentRecommendationBase { private contentIds; connectedCallback(): Promise<void>; private parseContentIds; fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<ContentsViewedAfterViewingMultipleContentsRequest | undefined>; } export declare class ContentViewedAfterViewingMultipleProducts extends ContentRecommendationBase { private productAndVariantIds; connectedCallback(): Promise<void>; private parseProductAndVariantIds; fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<ContentsViewedAfterViewingMultipleProductsRequest | undefined>; } export declare class ContentViewedAfterViewingProduct extends ContentRecommendationBase { productId: string | undefined; variantId: string | undefined; fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<ContentsViewedAfterViewingProductRequest | undefined>; } declare const context_2: { __context__: BatchingContextValue; }; export { context_2 as context } export declare interface ContextSettings { getUser: () => Promise<User> | User; language: string; currency: string; } export declare function createProductCategorySearchBuilder(searchTerm: string | null | undefined, settings: Settings): ProductCategorySearchBuilder; export declare function createProductSearchBuilder(searchTerm: string | null | undefined, settings: Settings): ProductSearchBuilder; export declare const defaultExplodedVariants = 1; export declare const defaultProductCategoryProperties: Partial<SelectedCategoryPropertiesSettings>; export declare const Events: { contextSettingsUpdated: string; search: string; applyFacet: string; applySorting: string; loadMoreProducts: string; showLoadingSpinner: string; dimPreviousResult: string; searchingForProductsCompleted: string; registerProductRecommendation: string; userEngagementChanged: string; }; export declare type Facet = ContentAssortmentFacet | ProductAssortmentFacet | ProductCategoryAssortmentFacet | BrandFacet | CategoryFacet | CategoryHierarchyFacet | ContentDataObjectFacet | ContentDataDoubleRangeFacet | ContentDataDoubleRangesFacet | ContentDataStringValueFacet | ContentDataBooleanValueFacet | ContentDataDoubleValueFacet | ContentDataIntegerValueFacet | DataObjectFacet | DataObjectDoubleRangeFacet | DataObjectDoubleRangesFacet | DataObjectStringValueFacet | DataObjectBooleanValueFacet | DataObjectDoubleValueFacet | PriceRangeFacet | PriceRangesFacet | ProductCategoryDataObjectFacet | ProductCategoryDataDoubleRangeFacet | ProductCategoryDataDoubleRangesFacet | ProductCategoryDataStringValueFacet | ProductCategoryDataBooleanValueFacet | ProductCategoryDataDoubleValueFacet | ProductDataObjectFacet | ProductDataDoubleRangeFacet | ProductDataDoubleRangesFacet | ProductDataStringValueFacet | ProductDataBooleanValueFacet | ProductDataDoubleValueFacet | ProductDataIntegerValueFacet | RecentlyPurchasedFacet | VariantSpecificationFacet; export declare interface FacetLocalization { save?: string; showMore?: string; showLess?: string; filter?: string; yes?: string; no?: string; } export declare type FacetResult = ProductAssortmentFacetResult | ContentAssortmentFacetResult | ProductCategoryAssortmentFacetResult | BrandFacetResult | CategoryFacetResult | CategoryHierarchyFacetResult | ContentDataObjectFacetResult | ContentDataDoubleRangeFacetResult | ContentDataDoubleRangesFacetResult | ContentDataStringValueFacetResult | ContentDataBooleanValueFacetResult | ContentDataDoubleValueFacetResult | ContentDataIntegerValueFacetResult | DataObjectFacetResult | DataObjectDoubleRangeFacetResult | DataObjectDoubleRangesFacetResult | DataObjectStringValueFacetResult | DataObjectBooleanValueFacetResult | DataObjectDoubleValueFacetResult | PriceRangeFacetResult | PriceRangesFacetResult | ProductCategoryDataObjectFacetResult | ProductCategoryDataDoubleRangeFacetResult | ProductCategoryDataDoubleRangesFacetResult | ProductCategoryDataStringValueFacetResult | ProductCategoryDataBooleanValueFacetResult | ProductCategoryDataDoubleValueFacetResult | ProductDataObjectFacetResult | ProductDataDoubleRangeFacetResult | ProductDataDoubleRangesFacetResult | ProductDataStringValueFacetResult | ProductDataBooleanValueFacetResult | ProductDataDoubleValueFacetResult | ProductDataIntegerValueFacetResult | VariantSpecificationFacetResult; export declare class Facets extends LitElement { facetResult: ProductFacetResult | null | undefined; labels: string[]; showFacets: boolean; showDimmingOverlay: boolean; handleResizeEventBound: () => void; handleDimPreviousResultEventBound: () => void; handleSearchingForProductsCompletedEventBound: () => void; connectedCallback(): void; disconnectedCallback(): void; handleResizeEvent(): void; handleDimPreviousResultEvent(): void; handleSearchingForProductsCompletedEvent(): void; renderFacet(label: string, facetResult: FacetResult, styling: string, isLast: boolean): TemplateResult_2<1> | typeof nothing; render(): TemplateResult_2<1>; static styles: CSSResult[]; } export declare class FavoriteButtonContent extends LitElement { user: User | null; content: ContentResult | null; private isWorking; private isFavorite; private handleUserEngagementChanged; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changed: PropertyValues<this>): void; render(): TemplateResult<1> | typeof nothing; private onToggle; private dispatchChangeEvent; static styles: CSSResult; } export declare interface FavoriteButtonLocalization { addToFavorites?: string; removeFavorite?: string; } export declare class FavoriteButtonProducts extends LitElement { user: User | null; product: ProductResult | null; trackOnVariant: Boolean; private isWorking; private isFavorite; private handleUserEngagementChanged; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changed: PropertyValues<this>): void; render(): TemplateResult<1> | typeof nothing; private onToggle; private dispatchChangeEvent; static styles: CSSResult; } export declare type FavoriteChangeDetail = { isFavorite: boolean; entityType?: 'Product' | 'Content'; productId?: string; variantId?: string | null; contentId?: string; }; export declare class FilterIcon extends LitElement { connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult; } export declare interface Filters { product?: (builder: FilterBuilder) => void; productCategory?: (builder: FilterBuilder) => void; content?: (builder: FilterBuilder) => void; } export declare function getNumberOfProductsToFetch(): number | null; export declare function getProductRecommendationBuilderWithDefaults<T extends ProductSettingsRecommendationBuilder>(createBuilder: (settings: Settings) => T, displayedAtLocation: string, target?: string | null): Promise<T>; export declare function getRecommender(options: RelewiseUIOptions): Recommender; export declare function getRelewiseContextSettings(displayedAtLocation: string): Promise<Settings>; export declare function getRelewiseRecommendationTargetedConfigurations(): TargetedRecommendationConfigurations_2; export declare function getRelewiseSearchTargetedConfigurations(): TargetedSearchConfigurations; export declare function getRelewiseUIOptions(): RelewiseUIOptions; export declare function getRelewiseUISearchOptions(): RelewiseUISearchOptions | undefined; export declare function getSearcher(options: RelewiseUIOptions): Searcher; export declare function getSelectedContentProperties(options: RelewiseUIOptions): Partial<SelectedContentPropertiesSettings>; export declare function getSelectedProductProperties(options: RelewiseUIOptions): Partial<SelectedProductPropertiesSettings>; export declare function getTracker(options: RelewiseUIOptions): Tracker; export declare function idPathAsArray(idPath: string | null): string[] | null; export declare function initializeRelewiseUI(options: RelewiseUIOptions): App; export declare class LoadingSpinner extends LitElement { render(): TemplateResult<1>; static styles: CSSResult[]; } export declare interface LoadMoreLocalization { loadMore?: string; showing?: string; outOf?: string; products?: string; } export declare class LoadMoreProducts extends LitElement { hits: number | null; productsLoaded: number | null; loading: boolean; handleShowLoadingSpinnerEventBound: () => void; handleSearchingForProductsCompletedEventBound: () => void; connectedCallback(): void; disconnectedCallback(): void; handleShowLoadingSpinnerEvent(): void; handleSearchingForProductsCompletedEvent(): void; render(): TemplateResult<1> | undefined; static styles: CSSResult[]; } export declare class NumberRangeFacet extends LitElement { result: (ProductDataDoubleRangeFacetResult) | null; label: string; upperBound: number | null | undefined; lowerBound: number | null | undefined; connectedCallback(): void; handleLowerBoundChange(event: Event): void; handleUpperBoundChange(event: Event): void; save(): void; handleKeyEvent(event: KeyboardEvent): void; render(): TemplateResult<1> | undefined; static styles: CSSResult[]; } export declare class PersonalContent extends ContentRecommendationBase { fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<ContentRecommendationRequest>; } export declare class PersonalProducts extends ProductRecommendationBase { fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<ProductRecommendationRequest>; } export declare class PopularContent extends ContentRecommendationBase { sinceMinutesAgo: number; fetchContent(): Promise<ContentRecommendationResponse | undefined>; buildRequest(): Promise<PopularContentsRequest>; } export declare class PopularProducts extends ProductRecommendationBase { sinceMinutesAgo: number; basedOn: 'MostPurchased' | 'MostViewed'; fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<PopularProductsRequest>; } export declare class ProductCategoryView extends LitElement { idPath: string | null; connectedCallback(): Promise<void>; } export declare abstract class ProductRecommendationBase extends LitElement { target: string | null; numberOfRecommendations: number; displayedAtLocation?: string; providedData?: BatchingContextValue; products: ProductResult[] | null; private user; abstract fetchProducts(): Promise<ProductRecommendationResponse | undefined> | undefined; abstract buildRequest(): Promise<ProductRecommendationRequest | undefined>; fetchAndUpdateProductsBound: () => Promise<void>; constructor(); connectedCallback(): Promise<void>; disconnectedCallback(): void; fetchAndUpdateProducts(): Promise<void>; render(): TemplateResult<1> | undefined; static styles: CSSResult; } export declare class ProductSearch extends LitElement { displayedAtLocation?: string; numberOfProducts: number; target: string | null; searchResult: ProductSearchResponse | null; products: ProductResult[]; page: number; rememberScrollPosition: boolean | undefined; abortController: AbortController; facetLabels: string[]; private user; handleSearchEventBound: () => void; handleLoadMoreEventBound: () => void; handleScrollEventBound: () => void; connectedCallback(): Promise<void>; disconnectedCallback(): void; handleSearchEvent(): void; handleLoadMoreEvent(): void; handleScrollEvent(): void; search(shouldClearOldResult: boolean): Promise<void>; getSelectedValuesForFacet(facet: Facet): void; getSelectedRange(facet: Facet): void; getSelectedRanges(facet: Facet): void; getSelectedStrings(facet: Facet): void; setSearchResultOnSlotChilderen(): void; setDataOnNodes(nodes: Node[]): void; updated(): Promise<void>; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchBar extends LitElement { autofocus: boolean; term: string | null; private debounceTimeoutHandlerId; connectedCallback(): void; handleKeyDown(event: KeyboardEvent): void; debouncedSetSearchTerm(term: string): void; setSearchTerm(term: string): void; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchOverlay extends LitElement { displayedAtLocation?: string; numberOfProducts: number; numberOfSearchTermPredictions: number; numberOfProductCategories: number; searchPageUrl?: string; autofocus: boolean; results: SearchResult[] | null; redirects?: RedirectResult[] | null; term: string; selectedIndex: number; searchBarInFocus: boolean; resultBoxIsHovered: boolean; hasCompletedSearchRequest: boolean; productSearchResultHits: number; user: User | null; private debounceTimeoutHandlerId; private abortController; connectedCallback(): Promise<void>; setSearchTerm(term: string): void; handleKeyDown(event: KeyboardEvent): void; redirectToSearchPage(): void; handleActionOnResult(result?: SearchResult): void; search(searchTerm: string): Promise<void>; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchOverlayProduct extends LitElement { user: User | null; product: ProductResult | undefined | null; connectedCallback(): void; render(): TemplateResult<1> | undefined; renderTileContent(product: ProductResult): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchOverlayProductCategory extends LitElement { user: User | null; productCategory: ProductCategoryResult | undefined | null; connectedCallback(): void; render(): TemplateResult<1> | undefined; renderTileContent(productCategory: ProductCategoryResult): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchOverlayResults extends LitElement { setSearchTerm: (term: string) => void; redirectToSearchPage: () => void; hits: number; noResultsMessage: string | null; results: SearchResult[] | null; selectedIndex: number; setResultOverlayHovered: (hovered: boolean) => void; user: User | null; connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSearchResults extends LitElement { products: ProductResult[]; private user; showLoadingSpinner: boolean; showDimmingOverlay: boolean; handleShowLoadingSpinnerEventBound: () => void; handleDimPreviousResultEventBound: () => void; handleSearchingForProductsCompletedEventBound: () => void; connectedCallback(): void; disconnectedCallback(): void; handleShowLoadingSpinnerEvent(): void; handleDimPreviousResultEvent(): void; handleSearchingForProductsCompletedEvent(): void; render(): TemplateResult<1> | undefined; static styles: CSSResult[]; } export declare class ProductSearchSorting extends LitElement { selectedOption: string; readSortingFromUrlBound: () => void; connectedCallback(): void; disconnectedCallback(): void; readSortingFromUrl(): void; setSelectedValue(event: Event): void; getOptionText(sortingValue: string): string; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare class ProductSentimentButtons extends LitElement { user: User | null; product: ProductResult | null; trackOnVariant: Boolean; private sentiment; private isWorking; private handleUserEngagementChanged; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changed: PropertyValues<this>): void; render(): TemplateResult<1> | typeof nothing; private onLikeClick; private onDislikeClick; private submitEngagement; private dispatchChangeEvent; static styles: CSSResult; } export declare class ProductsViewedAfterViewingContent extends ProductRecommendationBase { contentId: string | undefined; fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<ProductsViewedAfterViewingContentRequest | undefined>; } export declare class ProductsViewedAfterViewingProduct extends ProductRecommendationBase { productId: string | undefined; variantId: string | undefined; fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<ProductsViewedAfterViewingProductRequest | undefined>; } export declare interface ProductTemplateExtensions { html: (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult_2<1>; helpers: CommonTemplateHelpers & { formatPrice: (price: string | number | null | undefined) => string | number | null | undefined; }; } export declare class ProductTile extends LitElement { product: ProductResult | null; private user; protected createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; render(): TemplateResult<1> | undefined; renderTileContent(product: ProductResult): TemplateResult<1>; private getProductImageAlt; static defaultStyles: CSSResult[]; } export declare class ProductView extends LitElement { productId: string | null; variantId: string | undefined; connectedCallback(): Promise<void>; } export declare class PurchasedWithMultipleProducts extends ProductRecommendationBase { private productAndVariantIds; connectedCallback(): Promise<void>; private parseProductAndVariantIds; fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<PurchasedWithMultipleProductsRequest | undefined>; } export declare class PurchasedWithProduct extends ProductRecommendationBase { productId: string | undefined; variantId: string | undefined; fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<PurchasedWithProductRequest | undefined>; } export declare enum QueryKeys { term = "rw-term", take = "rw-take", sortBy = "rw-sorting", facet = "rw-facet-", facetUpperbound = "rw-facet-upperbound-", facetLowerbound = "rw-facet-lowerbound-" } export declare function readCurrentUrlState(queryParamName: string): string | null; export declare function readCurrentUrlStateValues(queryParamName: string): string[]; export declare class RecentlyViewedProducts extends ProductRecommendationBase { fetchProducts(): Promise<ProductRecommendationResponse | undefined>; buildRequest(): Promise<ProductRecommendationRequest>; } export declare class RecommendationBatcher extends LitElement { data: BatchingContextValue; timeoutHandler: ReturnType<typeof setTimeout> | undefined; batchBound: () => Promise<void>; registerEventBound: (e: Event) => void; constructor(); connectedCallback(): Promise<void>; disconnectedCallback(): void; batch(): Promise<void>; registerEvent(e: Event): void; render(): TemplateResult<1>; } export declare function registerRecommendationTarget(target: string, configuration: TargetedRecommendationConfiguration): void; export declare function registerSearchTarget(target: string, configuration: TargetedSearchConfiguration): void; export declare interface RelevanceModifiers { product?: (builder: RelevanceModifierBuilder) => void; productCategory?: (builder: RelevanceModifierBuilder) => void; content?: (builder: RelevanceModifierBuilder) => void; } export declare class RelewiseFacetBuilder { builder: FacetBuilder; private labels; constructor(builder: FacetBuilder); addFacet(facet: (builder: FacetBuilder) => void, options: { heading: string; }): this; getLabels(): string[]; } export declare type RelewiseUILocalization = { favoriteButton?: FavoriteButtonLocalization; sentimentButtons?: SentimentButtonsLocalization; }; export declare interface RelewiseUIOptions { datasetId: string; apiKey: string; contextSettings: ContextSettings; localization?: RelewiseUILocalization; selectedPropertiesSettings?: { product?: Partial<SelectedProductPropertiesSettings>; variant?: Partial<SelectedVariantPropertiesSettings>; productCategory?: Partial<SelectedProductCategoryPropertiesSettings>; content?: Partial<SelectedContentPropertiesSettings>; }; clientOptions: RelewiseClientOptions; templates?: Templates; filters?: Filters; relevanceModifiers?: RelevanceModifiers; targets?: Targets; userEngagement?: UserEngagementOptions; } export declare interface RelewiseUISearchOptions { filters?: SearchFilters; templates?: SearchTemplates; facets?: SearchFacets; localization?: SearchLocalization; rememberScrollPosition?: boolean; debounceTimeInMs?: number; explodedVariants?: number; } export declare class SearchBar extends LitElement { term: string; setSearchTerm: (term: string) => void; handleKeyEvent: (event: KeyboardEvent) => void; setSearchBarInFocus: (inFocus: boolean) => void; placeholder: string | null; autofocus: boolean; connectedCallback(): void; firstUpdated(): void; focusSearchInput(): void; render(): TemplateResult<1>; static styles: CSSResult[]; } export declare interface SearchBarLocalization { search?: string; placeholder?: string; overlay?: { title?: { products?: string; productCategories?: string; }; }; } export declare interface SearchFacets { product?: (builder: RelewiseFacetBuilder) => void; } export declare interface SearchFilters { product?: (builder: FilterBuilder) => void; productCategory?: (builder: FilterBuilder) => void; } export declare class SearchIcon extends LitElement { connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult; } export declare interface SearchLocalization { searchBar?: SearchBarLocalization; sortingButton?: SortingLocalization; loadMoreButton?: LoadMoreLocalization; facets?: FacetLocalization; searchResults?: SearchResultLocalization; } export declare type SearchResult = { title?: string; product?: ProductResult; searchTermPrediction?: SearchTermPredictionResult; productCategory?: ProductCategoryResult; redirect?: RedirectResult; showAllResults?: boolean; }; export declare interface SearchResultLocalization { noResults?: string; showAllResults?: string; result?: string; results?: string; } export declare interface SearchTemplates { searchOverlayProductResult?: (product: ProductResult, extensions: ProductTemplateExtensions) => TemplateResult_2<1> | typeof nothing | Promise<TemplateResult_2<1> | typeof nothing>; searchOverlayProductCategoryResult?: (productCategory: ProductCategoryResult, extensions: ProductTemplateExtensions) => TemplateResult_2<1> | typeof nothing | Promise<TemplateResult_2<1> | typeof nothing>; } export declare interface SentimentButtonsLocalization { like?: string; removeLike?: string; dislike?: string; removeDislike?: string; } export declare type SentimentChangeDetail = { sentiment: 'Like' | 'Dislike' | null; entityType?: 'Product' | 'Content'; productId?: string; variantId?: string | null; contentId?: string; }; export declare const SessionVariables: { scrollPosition: string; }; export declare class SortIcon extends LitElement { connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult; } export declare enum SortingEnum { Relevance = "Relevance", SalesPriceAsc = "SalesPriceAsc", SalesPriceDesc = "SalesPriceDesc", AlphabeticallyAsc = "AlphabeticallyAsc", AlphabeticallyDesc = "AlphabeticallyDesc" } export declare interface SortingLocalization { sortBy?: string; sorting?: string; relevance?: string; salesPriceAscending?: string; salesPriceDescending?: string; alphabeticalAscending?: string; alphabeticalDescending?: string; } export declare type StringTransformationResult<T> = T extends string ? string : T; export declare function stripHtmlClientSide<T>(value: T): StringTransformationResult<T>; export declare type TargetedRecommendationConfiguration = { filters?: (builder: FilterBuilder) => void; relevanceModifiers?: (builder: RelevanceModifierBuilder) => void; }; export declare class TargetedRecommendationConfigurations { private templates; constructor(initialValues?: (builder: TargetedRecommendationConfigurations) => void); add(configuration: { target: string; configuration: TargetedRecommendationConfiguration; }): this; has(target: string): boolean; handle(target: string, builder: RecommendationRequestBuilder): void; } export declare type TargetedSearchConfiguration = { overwriteFacets?: (builder: RelewiseFacetBuilder) => void; filters?: (builder: FilterBuilder) => void; relevanceModifiers?: (builder: RelevanceModifierBuilder) => void; }; export declare class TargetedSearchConfigurations { private templates; constructor(initialValues?: (builder: TargetedSearchConfigurations) => void); add(configuration: { target: string; configuration: TargetedSearchConfiguration; }): this; has(target: string): boolean; hasOverwrittenFacets(target: string): boolean; handle(target: string, builder: ProductSearchBuilder): { facetLabels?: string[]; }; } export declare interface Targets { searchTargets?: (builder: TargetedSearchConfigurations) => void; recommendationTargets?: (builder: TargetedRecommendationConfigurations) => void; } export declare type TemplateHelpers = typeof templateHelpers; export declare const templateHelpers: { stripHtmlClientSide: typeof stripHtmlClientSide; }; export declare interface Templates { product?: (product: ProductResult, extensions: ProductTemplateExtensions) => TemplateResult_2<1> | typeof nothing | Promise<TemplateResult_2<1> | typeof nothing>; content?: (content: ContentResult, extensions: ContentTemplateExtensions) => TemplateResult_2<1> | typeof nothing | Promise<TemplateResult_2<1> | typeof nothing>; } export declare const theme: CSSResult; export declare function updateContextSettings(contextSettings: Partial<ContextSettings>): void; export declare function updateUrlState(queryParamName: string, value: string | null): void; export declare function updateUrlStateValues(queryParamName: string, values: string[]): void; export declare function useBehavioralTracking(): void; export declare function useRecommendations(): void; export declare interface UserEngagementEntityOptions { sentiment?: boolean; favorite?: boolean; } export declare interface UserEngagementOptions { product?: UserEngagementEntityOptions; content?: UserEngagementEntityOptions; } export declare function useSearch(options?: RelewiseUISearchOptions): void; export declare class XIcon extends LitElement { connectedCallback(): void; render(): TemplateResult<1>; static styles: CSSResult; } export { }