import { KlevuRecord } from "@klevu/core";
import { KlevuProductSlots } from "../klevu-product/klevu-product";
/**
 * Full recommendation banner solution
 */
export declare class KlevuRecommendations {
  #private;
  /**
   * Title of the recommendation
   */
  recommendationTitle: string;
  /**
   * The ID of the recommendation
   */
  recommendationId: string;
  /**
   * For cart recommendation you need to provide product id's in cart
   */
  cartProductIds?: string[];
  /**
   * For category product recommendation you need to provide categery path
   */
  categoryPath?: string;
  /**
   * For similiar products recommendation you need to provide productId and itemGroupId
   */
  currentProductId?: string;
  /**
   * For similiar products recommendation you need to provide productId and itemGroupId
   */
  itemGroupId?: string;
  /**
   * The products to display
   */
  products: Array<KlevuRecord>;
  /**
   * Rendering function created to put custom content to klevu-product slots. Provides a product being rendered.
   * This function is called for each slot (top, image, info and bottom) of the component. Second parameter provides
   * slot requested. Return null for slots that you do not want to render.
   */
  renderProductSlot?: (product: KlevuRecord, productSlot: KlevuProductSlots) => HTMLElement | string | null;
  connectedCallback(): Promise<void>;
  render(): any;
}
