import type { ReactNode, MutableRefObject, Dispatch, SetStateAction } from 'react'; import { type UserQuestionItem, type UserQuestionLabels, type UserQuestionHandle } from './types'; export interface UserQuestionContextValue { questions: UserQuestionItem[]; labels: Required; currentQuestionIndex: number; setCurrentQuestionIndex: (i: number) => void; answers: Record; setAnswers: Dispatch>>; customInputs: Record; setCustomInputs: Dispatch>>; focusedOptionIndex: number; setFocusedOptionIndex: (i: number) => void; isSubmitting: boolean; setIsSubmitting: (v: boolean) => void; maxQuestionHeight: number | undefined; scrollContainerRef: MutableRefObject; questionRefs: MutableRefObject>; customInputRefs: MutableRefObject>; setShouldScrollToQuestion: (v: boolean) => void; currentQuestion: UserQuestionItem | undefined; currentOptions: { label: string; description?: string; }[]; allQuestionsAnswered: boolean; currentQuestionHasAnswer: boolean; getSelectedOptionIndex: (i: number) => number; handleOptionClick: (questionText: string, optionLabel: string, questionIndex: number) => void; handlePrevious: () => void; handleNext: () => void; handleContinue: () => void; handleSkip: () => void; handleRecommend: () => void; chat4Icon: ReactNode; arrowUpSIcon: ReactNode; arrowDownSIcon: ReactNode; sparklingIcon: ReactNode; hasCustomText: boolean; } export declare function useUserQuestionContext(): UserQuestionContextValue; export interface UserQuestionRootProps { questions: UserQuestionItem[]; resetKey?: string; onAnswer: (answers: Record) => void; onSkip: () => void; hasCustomText?: boolean; labels?: UserQuestionLabels; chat4Icon?: ReactNode; arrowUpSIcon?: ReactNode; arrowDownSIcon?: ReactNode; sparklingIcon?: ReactNode; children?: ReactNode; } export declare const UserQuestionRootProvider: import("react").ForwardRefExoticComponent>;