import { IProductOption, IProductVariant, ObjectValues } from '@debales/shared'; interface ChatBoxProps { botId: string; botName?: string; } export interface PluginCofig { collectedUserInfo: { modelHeading: string; name: boolean; email: boolean; phone: boolean; isOptional: boolean; discount?: string; }; } interface CollectedUserInfo { modelHeading: string; name: boolean; email: boolean; phone: boolean; isOptional: boolean; discount?: string; } export type DisplayMode = "normal" | "half-screen" | "full-screen"; export type HeightOption = "Normal" | "Higher" | "Highest"; export type ChatButtonBackgroundAnimationType = "Ping" | "Glow" | string; interface UiData { bot_logo?: string; backgroundColor: string; botBackgroundColor?: string; botMessageColor?: string; botFontColor?: string; fontColor?: string; headerFontColor?: string; callToActionBackgroundColor?: string; callToActionFontColor?: string; footerBackgroundColor?: string; fonterInputBorderColor?: string; initialMessage?: string; userMessageColor?: string; userFontColor?: string; suggestedQuestionsFontColor?: string; suggestedQuestionsBackgroundColor?: string; suggestedQuestionsHoverColor?: string; suggestedQuestionsCrossButtonColor?: string; suggestedQuestionsCrossButtonBackgroundColor?: string; suggestedQuestionsHighlightColor?: string; supportButtonBackgroundColor?: string; chatButtonBackgroundAnimationColor?: string; inputPlaceholder?: string[]; userMessage_logo?: string; suggestedQuestions: SuggestedQuestionAnswer[]; pluginConfig: PluginCofig; shopifyShopDomain?: string; chatbotName?: string; isLeft?: boolean; heightOption?: HeightOption; show_bot?: boolean; debales_branding?: boolean; fullScreenOnMobile?: boolean; mobileDisplayMode?: DisplayMode; KlaviyoIntegration?: boolean; KlaviyoFormIntegration?: boolean; enableChatButtonBackgroundAnimation?: boolean; chatButtonBackgroundAnimationType?: ChatButtonBackgroundAnimationType; removeLogoBackground?: boolean; collectedUserInfo: CollectedUserInfo; countryCode?: string; zIndex: number; currency?: string; fontScale?: number; fontFamily?: string; announcementBGColor?: string; announcementTextColor?: string; announcement?: { enabled: boolean; text: string; }; launcherVariant?: string; hideDefaultLauncher?: boolean; iconSize?: { sizeLg: string; sizeSm: string; }; chatLoggingEnabled?: boolean; chatResolutionIdleTimeoutMinutes?: number; } export interface Product { name: string; price?: string | null; image: [string]; link: string; product_id: string; compare_at_price?: string; handle?: string; productId?: string; variantId?: string; variants?: IProductVariant[]; options?: IProductOption[]; } export interface ResourceCard { title: string; snippet?: string; url: string; source?: string; image_url?: string | null; type?: string | null; source_type?: string | null; industries?: string[]; agent?: string | null; } export interface ChatCta { type?: "route" | "lead_capture" | "booking" | string | null; target_url?: string; booking_url?: string | null; } export interface LeadCaptureData { name: string; email: string; company: string; } export interface SuggestedQuestionAnswer { question: string; answer?: string; products?: Product[]; path: string; nameSpace: string; sortOrder?: number; isHighlighted?: boolean; enable?: boolean; leading_queries?: string[]; type?: "static" | "dynamic"; Follow_up_Question?: string; } export interface Message { text: string; leading_queries?: string[]; collections?: [ { image: string; name: string; } ]; products?: Product[]; cards?: ResourceCard[]; cta?: ChatCta | null; booking_url?: string | null; variants?: [ { id: string; name: string; price: string; } ]; totalprice?: string; show_checkout?: boolean; rating?: "liked" | "disliked" | "neutral"; conversationId?: string; shop?: string; Variants_quantity?: string; monthlyChatLimitReached?: boolean | undefined; isBot?: boolean; hideConfirmation?: boolean; isSessionBreak?: boolean; } export type { ChatBoxProps, UiData }; export interface ShopifyStoreMeta { currency: string; money_format: string; name: string; domain: string; } export interface VariantQuantity { id: string; productName: string; variantName: string; quantity: number; price?: string; productLink?: string; } export declare const ECOMMERCE_PLATFORM: { readonly DEFAULT: "DEFAULT"; readonly SHOPIFY: "SHOPIFY"; readonly WOOCOMMERCE: "WOOCOMMERCE"; readonly MAGENTO: "MAGENTO"; readonly UNKNOWN: "UNKNOWN"; readonly THE_COLLECTIVE: "THE_COLLECTIVE"; }; export type EcommercePlatform = ObjectValues; export interface ShadowDOMRef { shadowRoot: ShadowRoot; container: HTMLElement; querySelector: (selector: string) => Element | null; querySelectorAll: (selector: string) => NodeListOf | null; }