import { KlevuRecord } from "@klevu/core";
/**
 * Render given price with browsers own currency format.
 *
 * @param amount
 * @param currency
 * @returns formatted price
 */
export declare function renderPrice(amount: number | string, currency: string): string;
/**
 * Run callback only if it hasn't been requested in last `delay` milliseconds.
 *
 * @param callback function to call
 * @param wait time to wait in milliseconds
 * @returns
 */
export declare function debounce<T extends unknown[], U>(callback: (...args: T) => PromiseLike<U> | U, wait: number): (...args: T) => Promise<U>;
/**
 * Strip html tags from string.
 *
 * @param html
 * @returns
 */
export declare function stripTags(html: string): string;
/**
 * List of css ::parts() that are exposed to the developers.
 *
 * Essentially this is list of css selectors that are exposed to the developers.
 * See global.css for the list of selectors.
 */
export declare const globalExportedParts: string;
/**
 * Global settings that modify the way Klevu UI library works.
 */
export type KlevuUIGlobalSettings = {
  /**
   * When user clicks the product
   *
   * @param item Product that was clicked
   * @param event Event that triggered the click
   * @return false if the event should be prevented and stopped
   */
  onItemClick?: (item: Partial<KlevuRecord>, event: MouseEvent) => boolean;
  /**
   * Function to generate url for product in case using default klevu-products
   */
  generateProductUrl?: (product: Partial<KlevuRecord>) => string;
  /**
   * Generic way to render prices. By default browser currency renderer is used
   */
  renderPrice?: typeof renderPrice;
};
export declare function getGlobalSettings(): KlevuUIGlobalSettings | undefined;
