import { EventEmitter } from "../../stencil-public-runtime";
import { MoiSession, MoiProduct, MoiMessages } from "@klevu/core";
/**
 * Klevu MOI Application
 */
export declare class KlevuMoi {
  #private;
  session?: MoiSession;
  /**
   * Currently clicked product
   */
  currentProduct?: MoiProduct;
  /**
   * All messages
   */
  messages: MoiMessages;
  /**
   * Are we loading any messages
   */
  loading: boolean;
  /**
   * Display state
   */
  isShow: boolean;
  /**
   * Is currently open
   */
  isOpen: boolean;
  el: HTMLKlevuMoiElement;
  /**
   * Override default API key
   */
  apiKey?: string;
  /**
   * Start the MOI window open
   */
  startOpen?: boolean;
  /**
   * When a product is clicked. By default does a full page redirect to product url if event is not cancelled.
   *
   * Use `event.preventDefault()` to cancel the redirect.
   * @param product
   */
  klevuMoiProductClick: EventEmitter<MoiProduct>;
  /**
   * When the visibility of Moi window changes
   */
  klevuMoiVisibilityChange: EventEmitter<"open" | "close">;
  /** By default redirect the page if product click is not cancelled */
  onKlevuMoiProductClick(event: CustomEvent<MoiProduct>): void;
  connectedCallback(): Promise<void>;
  /**
   * Initialize the MOI session and open window
   */
  open(): Promise<void>;
  close(): Promise<void>;
  onMessage(): void;
  render(): any;
}
