import { RVDashboard } from './common.types.js'; /** * Base fields shared by both streaming and non-streaming chat requests */ interface ChatRequestBase { /** The user's message */ message: string; /** Datasource ID to use for context */ datasourceId?: string; /** Dashboard as JSON string or RVDashboard object */ dashboard?: string | RVDashboard; /** Visualization ID for widget-specific chat context */ visualizationId?: string; /** Intent for freeform LLM queries */ intent?: string; /** Whether to update the chat state after this query */ updateChatState?: boolean; /** Override the default LLM model for this request */ model?: string; /** AbortSignal for request cancellation */ signal?: AbortSignal; } /** * Non-streaming chat request (default) */ export interface ChatRequest extends ChatRequestBase { stream?: false; } /** * Streaming chat request */ export interface ChatStreamRequest extends ChatRequestBase { stream: true; } /** * Response from a chat request */ export interface ChatResponse { /** The AI-generated explanation */ explanation?: string; /** Dashboard JSON if one was generated or modified */ dashboard?: string; /** Error message if something went wrong */ error?: string; } export {}; //# sourceMappingURL=chat.types.d.ts.map