type Source = {
    source?: string;
    title?: string;
    url?: string;
};
export interface Message {
    question: string;
    answer: string;
    sendTime?: string | null;
    status?: "END" | "CHUNK" | "ERROR";
    sources?: Source[];
}
type UseArgs = {
    initialMessages: Message[];
    isMockEnabled?: boolean;
    setIsRequestLoading?: (loading: boolean) => void;
};
type GenerateFn = (query: string, searchQuery: any[], language: string, sortAfterKey: string, sort: any, range: [number, number]) => Promise<void>;
declare const useGenerateResponse: ({ initialMessages, isMockEnabled, setIsRequestLoading, }: UseArgs) => {
    message: Message | null;
    generateResponse: GenerateFn;
    cancelAllResponses: () => void;
    isChatting: boolean;
};
export default useGenerateResponse;
export type { GenerateFn };
