import { ChatContextDetails, ChatMessage, NlqMessage, NlqResponseData, TextMessage } from './api/types';
/**
 * Result of the useChatSession hook.
 *
 * @internal
 */
export interface UseChatSessionResult {
    chatId: string | undefined;
    history: ChatMessage[];
    lastNlqResponse: NlqResponseData | null;
    sendMessage: (message: string) => void;
    isAwaitingResponse: boolean;
    isLoading: boolean;
    lastError: Error | null;
}
export declare const isNlqMessage: (message: ChatMessage | null | undefined) => message is NlqMessage;
export declare const isTextMessage: (message: ChatMessage | null | undefined) => message is TextMessage;
/**
 * React hook that returns a chat session object for the given data model or
 * perspective.
 *
 * Maintains chat history and updates when a message is sent/received or when
 * history is cleared.
 *
 * If a chat session does not already exist, then one is created.
 *
 * @param {string} contextTitle - the title of the data model or perspective
 * @param {ChatContextDetails} [contextDetails] - optional chat context details
 * @internal
 */
export declare const useChatSession: (contextTitle: string, contextDetails?: ChatContextDetails) => UseChatSessionResult;
