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 chat-messages-after - 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; /** * Optional action to perform when type writer effect completes */ handleTypeWriterEffectEnds?: (showQuestions: boolean) => void; /** * type animation speed, if 0, no animation */ speed: number; /** * Scroll to bottom of the chat */ scrollBottom?: () => void; /** * Should display the product slider navigation buttons centered in relating to product list */ centerNextPrev: boolean; /** * 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; feedbackReasons: string[]; lastMessageDisplayedText: string; typeWriterEnds: boolean; watchPropHandler(newValue: MoiResponseText[], oldValue: MoiResponseText[]): void; startTyping(text: string): void; render(): any; }