import { DefaultTheme } from 'styled-components'; import { Message, SuggestedQuestionAnswer, UiData } from '../types'; export declare const getTheme: (data: UiData, botId: string) => DefaultTheme; export declare function getSessionId(): string; export declare function resetSessionId(): string; export declare function buildWelcomeMessage(uiData: Pick | null): Message; export declare function getMessageId(): string | null; export declare function setSessionId(sessionId: string): void; export declare function getIsFormClosedByUser(): boolean; export declare function setIsFormClosedByUser(value: boolean): void; export declare function getUserInfo(): { name?: string; email: string; phone?: string; } | null; export declare function setUserInfo(userInfo: { name?: string; email?: string; phone?: string; }): void; export declare function scrollToBottom(containerRef: React.RefObject): void; export declare function getCurrentPath(): string; export declare function isTestingUser(): boolean; /** * Gets suggested questions for the current path from an array of SuggestedQuestionAnswer objects * * @param {SuggestedQuestionAnswer[]} questions - Array of all suggested questions * @returns {SuggestedQuestionAnswer[]} - Filtered questions for the current path */ export declare function getQuestionsForCurrentPath(questions: SuggestedQuestionAnswer[]): SuggestedQuestionAnswer[]; export declare const asyncWait: (ms: number) => Promise; interface trackCheckoutOptions { projectName: string; /** * conversationId should be combination of sessionId and projectName * @example conversationId = sessionId + projectName */ conversationId: string; cartValue: number; /** * createdAt should in a ISO format */ createdAt?: string; /** * updatedAt should in a ISO format */ updatedAt?: string; userName?: string; userPhone?: string; userEmail?: string; anonymousUserId?: string; distinctId?: string; } export declare const trackCheckout: (options: trackCheckoutOptions) => Promise; export declare const initializeMixpanel: (projectName: string) => import('mixpanel-browser').OverridedMixpanel | null; export declare const trackEventMixpanel: (eventName: string, data: Record) => Promise; export declare const getMixpanelDistintId: (botId: string) => any; export declare const generateUniqueId: () => string; export declare const clearanonymousUserId: () => void; export declare function splitMessageIntoParagraphs(markdownText: string): string[]; export declare const isAthflex: (botId: string) => botId is "athflex" | "athflex-2"; export declare const isGaiabay: (botId: string) => boolean; export declare const splitQuestionsIntoGroups: (questions: SuggestedQuestionAnswer[]) => (SuggestedQuestionAnswer | SuggestedQuestionAnswer[])[]; /** * Creates a storage key with optional botId scoping * * @param {string} purpose - The purpose identifier for the storage key * @param {object} options - Optional configuration * @param {string} options.botId - Bot ID for project-specific storage (optional) * @param {boolean} options.shared - Whether this is shared across all instances (optional) * @return {string} The generated storage key */ export declare function createStorageKey(purpose: string, options?: { botId?: string; }): string; export {};