import { MoiMessages, MoiSession, MoiSavedFeedback, KlevuConfig, MoiRequest } from "@klevu/core";
import { KlevuTextfieldVariant } from "../klevu-textfield/klevu-textfield";
import { Placement } from "@floating-ui/dom";
import { KlevuMessageFeedbackReasonDetails } from "../klevu-chat-bubble/klevu-chat-bubble";
/**
 * Klevu Product Query popup application that shows a popup for asking questions about a product
 *
 * @csspart product-query-popup-header Header of the popup
 * @csspart product-query-popup-footer Footer of the popup where input is
 * @csspart product-query-popup-feedback Feedback section of the popup when it is being closed
 *
 * @slot fineprint - Fine print of the popup
 */
export declare class KlevuProductQueryPopup {
  #private;
  session?: MoiSession;
  /**
   * Url of the page where the product is
   */
  url: string;
  /**
   * Alternative to url, productId can be used to start a session
   */
  productId?: string;
  /**
   * Instead of Klevu API-key use a widget id to start a session
   */
  pqaWidgetId?: string;
  /**
   * Variant of the textfield how does it look like
   */
  textFieldVariant: KlevuTextfieldVariant;
  /**
   * Placeholder of the textfield
   */
  tTextFieldPlaceholder: string;
  /**
   * Title of the popup
   */
  tPopupTitle: string;
  /**
   * Text of the button to open the popup
   */
  tButtonText: string;
  /**
   * Fine print of the popup under the title
   */
  tFinePrint: string;
  /**
   * When loading takes a bit longer, show this text
   */
  tLoadingSorry: string;
  /**
   * Title of the feedback section when closing the popup
   */
  tRateExperienceTitle: string;
  /**
   * Description of the feedback section when closing the popup
   */
  tRateExperienceText: string;
  /**
   * Data protection notice when user registering is enabled
   */
  tDataProtectionNotice: string;
  /**
   * Text of the button for asking a question
   */
  askButtonText?: string;
  /**
   * Use dark background with the popup
   */
  useBackground?: boolean;
  /**
   * Anchor popup to which side of the origin
   */
  popupAnchor: Placement;
  /**
   * How many pixels to offset the popup from origin
   */
  popupOffset?: number;
  /**
   * Settings for requests to Klevu. Deeper modification on how the product query works.
   */
  settings?: MoiRequest["klevuSettings"];
  /**
   * Element to anchor the product query popup to
   */
  originElement?: HTMLElement;
  /**
   * Disable closing the popup when clicking outside of it
   */
  disableCloseOutsideClick?: boolean;
  /**
   * Config for Klevu
   */
  config?: KlevuConfig;
  /**
   * Use native scrollbars instead of custom ones
   */
  useNativeScrollbars?: boolean;
  text: string;
  name: string;
  email: string;
  registered: boolean;
  showFeedback: boolean;
  showLoading: boolean;
  showLoadingSorry: boolean;
  feedbacks: MoiSavedFeedback[];
  showMessageFeedbackFor?: string;
  el: HTMLKlevuProductElement;
  messages: MoiMessages;
  connectedCallback(): Promise<void>;
  onMessage(): void;
  onMessageFeedback(e: CustomEvent<KlevuMessageFeedbackReasonDetails>): Promise<void>;
  render(): any;
}
