import { ConversationFetchOptions, MessageData } from "./services/conversations";
import { SortReferences } from "./references";
import { type ConversationState } from "./conversationStore";
export type ConversationMethods = {
    createConversation: () => Promise<void>;
    switchConversation: (conversationId: string) => Promise<void>;
    submit: (content: string) => Promise<void>;
    getMessage: (messageId: string) => MessageData | undefined;
    rateMessage: (messageId: string, rating: boolean) => Promise<void>;
    commentMessage: (messageId: string, comment: string) => Promise<void>;
};
export type Conversation = ConversationState & ConversationMethods;
export type UseConversationParams = {
    serverBaseUrl: string;
    shouldStream?: boolean;
    sortMessageReferences?: SortReferences;
    fetchOptions?: ConversationFetchOptions;
};
export declare function useConversation(params: UseConversationParams): {
    conversationId: string | undefined;
    messages: MessageData[];
    error: string | undefined;
    streamingMessageId: string | undefined;
    createConversation: () => Promise<void>;
    submit: (content: string) => Promise<void>;
    getMessage: (messageId: string) => MessageData | undefined;
    rateMessage: (messageId: string, rating: boolean) => Promise<void>;
    commentMessage: (messageId: string, comment: string) => Promise<void>;
    switchConversation: (conversationId: string) => Promise<void>;
};
