import { HttpClient } from '@sisense/sdk-rest-client';
import { type GetNarrativeOptions } from '../../../infra/api/narrative/narrative-endpoints.js';
import { ChatContextDetails } from '../../../modules/ai/api/types';
import type { Chat, ChatContext, ChatRequest, ChatResponse, ChatWithoutHistory, GetNlgInsightsRequest, GetNlqResultRequest, LlmConfig, NlqResult, QueryRecommendationConfig, QueryRecommendationResponse, SendFeedbackRequest } from './types';
/** @internal */
export declare class ChatRestApi {
    private readonly volatile;
    private httpClient;
    constructor(httpClient: HttpClient, volatile?: boolean);
    getChatContexts: () => Promise<ChatContext[]>;
    private getNlgInsights;
    private getQueryRecommendations;
    private getNlqResult;
    private setLlmConfig;
    private getAllChats;
    private getChatById;
    private createChat;
    private postChat;
    private deleteChatHistory;
    private sendFeedback;
    ai: {
        getNlgInsights: (request: GetNlgInsightsRequest, options?: GetNarrativeOptions) => Promise<import("../../../infra/api/narrative/narrative-api-types").NarrativeResponse | undefined>;
        getNlqResult: (contextTitle: string, request: GetNlqResultRequest) => Promise<NlqResult | undefined>;
        getQueryRecommendations: (contextTitle: string, config: QueryRecommendationConfig) => Promise<QueryRecommendationResponse | undefined>;
        setLlmConfig: (config: LlmConfig) => Promise<unknown>;
        sendFeedback: (request: SendFeedbackRequest) => Promise<unknown>;
        chat: {
            getAll: () => Promise<never[] | ChatWithoutHistory[] | undefined>;
            getById: (chatId: string) => Promise<Chat | undefined>;
            create: (sourceId: string, contextDetails?: ChatContextDetails) => Promise<Chat | undefined>;
            post: (chatId: string, request: ChatRequest) => Promise<ChatResponse | undefined>;
            clearHistory: (chatId: string) => Promise<void | undefined>;
        };
    };
}
