import React from "react";
import { Chunk } from "../types";
import { ChunkGroup } from "trieve-ts-sdk";
export type ChunkIdWithIndex = {
    chunk_id: string;
    position: number;
};
export type ComponentMessages = {
    queryId: string | null;
    type: "user" | "system";
    text: string;
    additional: Chunk[] | null;
}[];
declare function ChatProvider({ children }: {
    children: React.ReactNode;
}): React.JSX.Element;
declare function useChatState(): {
    askQuestion: (question?: string, group?: ChunkGroup, retry?: boolean, match_any_tags?: string[]) => Promise<void>;
    isLoading: boolean;
    messages: ComponentMessages;
    currentQuestion: string;
    setCurrentQuestion: React.Dispatch<React.SetStateAction<string>>;
    stopGeneratingMessage: () => void;
    clearConversation: () => void;
    switchToChatAndAskQuestion: (query: string) => Promise<void>;
    cancelGroupChat: () => void;
    chatWithGroup: (group: ChunkGroup, betterGroupName?: string) => void;
    isDoneReading?: boolean;
    rateChatCompletion: (isPositive: boolean, queryId: string | null) => void;
    productsWithClicks: ChunkIdWithIndex[];
};
export { ChatProvider, useChatState };
//# sourceMappingURL=chat-context.d.ts.map