import { MoiMessages, MoiProduct, MoiResponseFilter, MoiResponseText, MoiSavedFeedback } from "@klevu/core";
import { EventEmitter } from "../../stencil-public-runtime";
export type onKlevuMessageFeedbackDetails = {
  message: MoiResponseText["message"];
  feedback: "up" | "down";
};
/**
 * @slot after-messages - Things to place in the after all messages
 */
export declare class KlevuChatMessages {
  /**
   * Messages received from Moi backend
   */
  messages: MoiMessages;
  /**
   * Feedbacks given by user
   */
  feedbacks?: MoiSavedFeedback[];
  /**
   * Should display a feedback button after each message
   */
  enableMessageFeedback?: boolean;
  /**
   * What message should we
   */
  showFeedbackFor?: string;
  /**
   * When product is clicked
   */
  klevuChatProductClick: EventEmitter<{
    product: MoiProduct;
  }>;
  /**
   * When product filter is clicked
   */
  klevuSelectFilter: EventEmitter<{
    message: MoiResponseFilter;
    filter: MoiResponseFilter["filter"]["options"][0];
  }>;
  /**
   * When product option is clicked
   */
  klevuSelectProductOption: EventEmitter<{
    product: MoiProduct;
    option: MoiProduct["options"][0];
  }>;
  /**
   * When feedback is given
   */
  klevuMessageFeedback: EventEmitter<onKlevuMessageFeedbackDetails>;
  feedbackReasons: string[];
  render(): any;
}
