import * as react_jsx_runtime from 'react/jsx-runtime';
import React, { ReactNode, Dispatch, SetStateAction } from 'react';

declare function ChatBot(): react_jsx_runtime.JSX.Element;

interface WemaContextProps {
    showChatBot: boolean;
    setShowChatBot: Dispatch<SetStateAction<boolean>>;
    messages: Message[];
    setMessages: Dispatch<SetStateAction<Message[]>>;
    botResponseIsLoading: boolean;
    setBotResponseIsLoading: Dispatch<SetStateAction<boolean>>;
    sendMessage: (text: string) => Promise<void>;
    getMessage: () => Promise<void>;
    handleButtonClick: (textToRender: string) => void;
    renderSelectedOption: any;
    tabNumber: number;
    setTabNumber: Dispatch<SetStateAction<number>>;
    waterMark: string;
    setWaterMark: Dispatch<SetStateAction<string>>;
    fetchBotResponse: () => void;
    showFullContent: boolean;
    setShowFullContent: Dispatch<SetStateAction<boolean>>;
    showDetailedResponse: boolean;
    setShowDetailedResponse: Dispatch<SetStateAction<boolean>>;
    botConversationId: string;
    setBotConversationId: Dispatch<SetStateAction<string>>;
    botToken: string;
    setBotToken: Dispatch<SetStateAction<string>>;
    userId: string;
    setUserId: Dispatch<SetStateAction<string>>;
    loading: boolean;
    setLoading: Dispatch<SetStateAction<boolean>>;
    errorExist: boolean;
    setErrorExist: Dispatch<SetStateAction<boolean>>;
    showButtons: boolean;
    setShowButtons: Dispatch<SetStateAction<boolean>>;
}
type buttonsType = {
    name: string;
    value: string;
};
interface Message {
    id: string;
    text?: string;
    sender: "user" | "bot";
    timestamp: Date;
    pending: boolean;
    delivered: boolean;
    error: boolean;
    buttons: buttonsType[];
    buttonsVisible?: boolean;
    others?: () => {};
}
declare const WemaContextProvider: React.FC<{
    children: ReactNode;
}>;
declare const useWemaContext: () => WemaContextProps;

export { ChatBot, WemaContextProvider, useWemaContext };
