import type { CommonAnswer, GptRequestData } from "../ErrorScreen/types.js";
import type { GptDialogProps } from "../GptDialog/GptDialog.js";
type UseGptProps<AnswerData extends CommonAnswer = CommonAnswer, PromptData extends unknown = unknown> = Pick<GptDialogProps<AnswerData, PromptData>, 'markup' | 'promptPresets' | 'onCustomPromptApply' | 'onPromptPresetClick' | 'onTryAgain' | 'onLike' | 'onDislike' | 'onApplyResult' | 'onUpdate'>;
export declare const useGpt: <AnswerData extends CommonAnswer = CommonAnswer, PromptData extends unknown = unknown>({ markup, promptPresets, onCustomPromptApply, onPromptPresetClick, onTryAgain, onLike, onDislike, onApplyResult, onUpdate, }: UseGptProps<AnswerData, PromptData>) => {
    answer: AnswerData | undefined;
    customPrompt: string;
    lastRequestData: GptRequestData<PromptData> | undefined;
    loading: boolean;
    error: boolean;
    mode: "custom-and-presets" | "only-custom" | "only-presets";
    feedbackType: "dislike" | "like" | undefined;
    feedbackTypeLoading: "dislike" | "like" | undefined;
    handleLike: () => Promise<void>;
    handleDislike: () => Promise<void>;
    handleCustomPromptUpdate: import("react").Dispatch<import("react").SetStateAction<string>>;
    handleCustomPromptKeyPress: import("react").KeyboardEventHandler<HTMLInputElement>;
    handleCustomPromptApply: () => Promise<void>;
    handlePresetClick: (data?: PromptData | undefined) => void;
    handleTryAgain: () => Promise<void>;
    handleFreshStart: () => void;
    handleApplyResult: () => void;
    showTryAgainButton: boolean;
    showAnswer: boolean;
    showError: boolean;
    showAnswerActions: boolean | undefined;
};
export {};
