import { type Reducer } from "@reduxjs/toolkit"; import { type IChatConversationInteractionStep, type IChatConversationItem } from "@gooddata/sdk-backend-spi"; import { type GenAIChatEffort, type GenAIChatInteractionUserFeedback } from "@gooddata/sdk-model"; import { type SdkErrorType } from "@gooddata/sdk-ui"; import { type AssistantMessage, type Contents, type GenAIAgent, type IChatConversationErrorContent, type IChatConversationLocal, type IChatConversationLocalContent, type IChatConversationLocalItem, type Message, type UserMessage } from "../../model.js"; import { type IChatConversationTracedAction, type StoredConversation } from "../../types.js"; type MessagesSliceState = { /** * A verbose mode defines how much information is shown in the chat. */ verbose: boolean; /** * If the thread is loaded. */ loaded: boolean; /** * A normalized map of messages indexed by their localId. */ messages: Record; /** * An order of messages in the chat. */ messageOrder: string[]; /** * If the interface is busy, this specifies the details of the async operation. * Where: * - loading: the thread history is being loaded from the backend (no messages to show yet) * - restoring: cached messages have been restored while the backend fetch is still in-flight * - clearing: the thread is being cleared * - evaluating: the new user message is being evaluated by assistant */ messageAsyncProcess?: "loading" | "restoring" | "clearing" | "evaluating"; /** * A list of conversations. */ conversations: IChatConversationLocal[] | undefined; /** * Indicates whether the conversations data has been successfully loaded. */ conversationsLoaded: boolean; /** * The current conversation. * - undefined: no conversation is selected */ currentConversation: IChatConversationLocal | undefined; /** * The currently selected agent id for newly created conversations. */ selectedAgentId: string | undefined; /** * The effort level the user selected for the next message, used only while no conversation is * selected. With conversations the effort lives per conversation in conversationsData. */ selectedEffort: GenAIChatEffort; /** * The enabled agents available for new prompts. * Undefined means the agent list has not been evaluated yet. */ agents: GenAIAgent[] | undefined; /** * Conversation data */ conversationsData: Record; /** * A global error object. I.e. if something unexpected went wrong, * not on the interaction level. */ globalError?: Record; /** * An ID of the conversation thread. * Not the same as threadIdSuffix in some of the REST APIs, * this one is the actual id from server, useful for telemetry. */ threadId?: string; /** * A refocus counter. Used to force re-render of the input field. */ refocus: number; }; export declare const LS_VERBOSE_KEY = "gd-gen-ai-verbose"; export declare const messagesSliceName = "messages"; export declare const messagesSliceReducer: Reducer; export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/loadThreadAction">, loadThreadErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ error: Error; }, "messages/loadThreadErrorAction">, loadThreadSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ messages: Message[]; threadId: string; }, "messages/loadThreadSuccessAction">, loadConversationsSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversations: IChatConversationLocal[]; }, "messages/loadConversationsSuccessAction">, loadConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ currentConversation: IChatConversationLocal; conversationItems?: IChatConversationLocalItem[]; threadId?: string; }, "messages/loadConversationSuccessAction">, restoreCachedMessagesAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ messages: Message[]; }, "messages/restoreCachedMessagesAction">, clearThreadErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ error: Error; }, "messages/clearThreadErrorAction">, clearThreadSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/clearThreadSuccessAction">, clearConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; threadId: string; }, "messages/clearConversationSuccessAction">, evaluateConversationTitleAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; generatingTitle: boolean; title?: string; }, "messages/evaluateConversationTitleAction">, evaluateMessageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ message: AssistantMessage | IChatConversationLocalItem; conversationId?: string; }, "messages/evaluateMessageAction">, evaluateMessageErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ error: string; assistantMessageId: string; conversationId?: string; }, "messages/evaluateMessageErrorAction">, evaluateMessageStreamingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ contents?: Contents[]; item?: IChatConversationItem; content?: IChatConversationLocalContent | IChatConversationErrorContent; assistantMessageId: string; interactionId?: string; conversationId?: string; }, "messages/evaluateMessageStreamingAction">, evaluateMessageUpdateAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ userMessageId: string; conversation: IChatConversationLocal; message: IChatConversationItem | UserMessage; isStartMessage: boolean; interactionId?: string; conversationId?: string; }, "messages/evaluateMessageUpdateAction">, evaluateMessageCompleteAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ assistantMessageId: string; conversationId?: string; cancelled?: boolean; }, "messages/evaluateMessageCompleteAction">, setMessagesAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ messages?: Message[]; items?: IChatConversationLocalItem[]; }, "messages/setMessagesAction">, setVerboseAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ verbose: boolean; }, "messages/setVerboseAction">, setGlobalErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ error: Error; }, "messages/setGlobalErrorAction">, cancelAsyncAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/cancelAsyncAction">, clearConversationLoadingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversationLocalId?: string; }, "messages/clearConversationLoadingAction">, setUserFeedback: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ assistantMessageId: string; feedback: GenAIChatInteractionUserFeedback; userTextFeedback?: string; }, "messages/setUserFeedback">, setUserFeedbackError: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ assistantMessageId: string; conversationId?: string; error: string; }, "messages/setUserFeedbackError">, clearUserFeedbackError: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ assistantMessageId: string; conversationId?: string; }, "messages/clearUserFeedbackError">, saveVisualizationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ visualizationId: string; visualizationTitle: string; assistantMessageId: string; explore: boolean; }, "messages/saveVisualizationAction">, savedVisualizationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ visualizationId: string; assistantMessageId: string; }, "messages/savedVisualizationAction">, saveVisualizationErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ error: { name: string; message: string; }; visualizationId: string; assistantMessageId: string; conversationId?: string; }, "messages/saveVisualizationErrorAction">, saveVisualizationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ visualizationId: string; assistantMessageId: string; savedVisualizationId: string; conversationId?: string; explore: boolean; }, "messages/saveVisualizationSuccessAction">, saveVisualisationRenderStatusAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ visualizationId: string; assistantMessageId: string; status: "SUCCESSFUL" | "UNEXPECTED_ERROR" | "TOO_MANY_DATA_POINTS" | "NO_DATA" | "NO_RESULTS"; }, "messages/saveVisualisationRenderStatusAction">, saveVisualisationRenderStatusSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ visualizationId: string; assistantMessageId: string; status: "SUCCESSFUL" | "UNEXPECTED_ERROR" | "TOO_MANY_DATA_POINTS" | "NO_DATA" | "NO_RESULTS"; }, "messages/saveVisualisationRenderStatusSuccessAction">, visualizationErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ errorType: SdkErrorType; errorMessage?: string; }, "messages/visualizationErrorAction">, appendInteractionStepAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversationId: string; step: IChatConversationInteractionStep; }, "messages/appendInteractionStepAction">, appendTracedActionAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversationId: string; responseId: string; stepId: string; action: IChatConversationTracedAction; }, "messages/appendTracedActionAction">, appendResponseDetailAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversationId: string; responseId: string; action: IChatConversationTracedAction; }, "messages/appendResponseDetailAction">, applyPendingAgentSwitchAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversationLocalId: string; beforeItemLocalId?: string; }, "messages/applyPendingAgentSwitchAction">, revertAgentSwitchAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ previousAgentId: string | undefined; failedAgentId: string; conversationLocalId: string; }, "messages/revertAgentSwitchAction">, setAgentsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ agents: GenAIAgent[] | undefined; }, "messages/setAgentsAction">, pinConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; pinned: boolean; }, "messages/pinConversationAction">, pinConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; pinned: boolean; }, "messages/pinConversationSuccessAction">, pinConversationFailureAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; error: Error; pinned?: boolean; }, "messages/pinConversationFailureAction">, renameConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; title: string; }, "messages/renameConversationAction">, renameConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; title: string; }, "messages/renameConversationSuccessAction">, renameConversationFailureAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; error: Error; title?: string; }, "messages/renameConversationFailureAction">, deleteConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; }, "messages/deleteConversationAction">, deleteConversationStartAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; }, "messages/deleteConversationStartAction">, deleteConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; }, "messages/deleteConversationSuccessAction">, deleteConversationFailureAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; error: Error; }, "messages/deleteConversationFailureAction">, filledFormAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ assistantMessageId: string; }, "messages/filledFormAction">, refocusInput: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/refocusInput">, /** * @public */ setSelectedAgentAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ agentId: string | undefined; previousAgentId?: string | undefined; showChangeEvent?: boolean; }, "messages/setSelectedAgentAction">, /** * @public */ setSelectedEffortAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ effort: GenAIChatEffort; }, "messages/setSelectedEffortAction">, /** * @public */ setCurrentConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ conversation: IChatConversationLocal; }, "messages/setCurrentConversationAction">, /** * @public */ startNewConversationAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/startNewConversationAction">, /** * @public */ clearThreadAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/clearThreadAction">, /** * @public */ newMessageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload; export {}; //# sourceMappingURL=messagesSlice.d.ts.map