import { Dispatch, SetStateAction } from "react";
import { Settings } from "../types/Settings";
/**
 * Creates the useBotStatesContext() hook to manage common states.
 */
export type BotStatesContextType = {
    isBotTyping: boolean;
    setIsBotTyping: Dispatch<SetStateAction<boolean>>;
    isChatWindowOpen: boolean;
    setIsChatWindowOpen: Dispatch<SetStateAction<boolean>>;
    audioToggledOn: boolean;
    setAudioToggledOn: Dispatch<SetStateAction<boolean>>;
    voiceToggledOn: boolean;
    setVoiceToggledOn: Dispatch<SetStateAction<boolean>>;
    notificationsToggledOn: boolean;
    setNotificationsToggledOn: Dispatch<SetStateAction<boolean>>;
    isLoadingChatHistory: boolean;
    setIsLoadingChatHistory: Dispatch<SetStateAction<boolean>>;
    hasChatHistoryLoaded: boolean;
    setHasChatHistoryLoaded: Dispatch<SetStateAction<boolean>>;
    isScrolling: boolean;
    setIsScrolling: Dispatch<SetStateAction<boolean>>;
    textAreaDisabled: boolean;
    setTextAreaDisabled: Dispatch<SetStateAction<boolean>>;
    textAreaSensitiveMode: boolean;
    setTextAreaSensitiveMode: Dispatch<SetStateAction<boolean>>;
    hasInteractedPage: boolean;
    setHasInteractedPage: Dispatch<SetStateAction<boolean>>;
    hasFlowStarted: boolean;
    setHasFlowStarted: Dispatch<SetStateAction<boolean>>;
    unreadCount: number;
    setUnreadCount: Dispatch<SetStateAction<number>>;
    inputLength: number;
    setInputLength: Dispatch<SetStateAction<number>>;
    blockAllowsAttachment: boolean;
    setBlockAllowsAttachment: Dispatch<SetStateAction<boolean>>;
    timeoutId: ReturnType<typeof setTimeout> | null;
    setTimeoutId: Dispatch<SetStateAction<ReturnType<typeof setTimeout> | null>>;
    viewportHeight: number;
    setViewportHeight: Dispatch<SetStateAction<number>>;
    viewportWidth: number;
    setViewportWidth: Dispatch<SetStateAction<number>>;
};
declare const useBotStatesContext: () => BotStatesContextType;
/**
 * Creates provider to wrap the chatbot container.
 */
declare const BotStatesProvider: ({ children, settings }: {
    children: React.ReactNode;
    settings?: Settings;
}) => import("react/jsx-runtime").JSX.Element;
export { useBotStatesContext, BotStatesProvider };
//# sourceMappingURL=BotStatesContext.d.ts.map