import { DTOForgeChatMessageScoreInput, DTOForgeChatMessageTagInput } from "@supernova-studio/client";
import { ChatThread } from "../../model/messaging/SDKChatThread";
import { ChatThreadMessage, ChatThreadMessageInput } from "../../model/messaging/SDKChatThreadMessage";
import { DataCore } from "../data/SDKDataCore";
export declare class AreaMessaging {
    private dataCore;
    constructor(dataCore: DataCore);
    /**
     * Lists chat threads in the specified workspace for the current user based on the session.
     * @param workspaceId - The ID of the workspace.
     * @param limit - Optional limit on the number of threads to return.
     * @param offset - Optional offset for pagination.
     * @returns An array of ChatThread objects.
     */
    listChatThreads(workspaceId: string, limit?: number, offset?: number): Promise<Array<ChatThread>>;
    /**
     * Fetches a specific chat thread by its ID. This method retrieves the thread details including its messages and is the only way to get thread content.
     * @param workspaceId - The ID of the workspace.
     * @param thread - The thread object to update.
     * @returns A new copy of the The ChatThread object with filled-in messages.
     */
    getChatThreadMessages(workspaceId: string, thread: ChatThread): Promise<ChatThread>;
    /**
     * Fetches a specific chat thread by its ID. This method retrieves the thread details including its messages and is the only way to get thread content.
     * @param workspaceId - The ID of the workspace.
     * @param threadId - The ID of the thread.
     * @returns A new copy of the The ChatThread object with filled-in messages.
     */
    getChatThreadMessagesByThreadId(workspaceId: string, threadId: string): Promise<Array<ChatThreadMessage>>;
    /**
     * Creates a new chat thread in the specified workspace associated with the current user based on the session.
     * @param workspaceId - The ID of the workspace.
     * @param title - Optional title for the thread (defaults to "Untitled").
     * @returns The created ChatThread.
     */
    createChatThread(workspaceId: string, title?: string): Promise<ChatThread>;
    /**
     * Updates the title of a specific chat thread.
     * @param workspaceId - The ID of the workspace.
     * @param threadId - The ID of the thread to update.
     * @param newTitle - The new title for the thread.
     * @returns The updated ChatThread.
     */
    updateChatThreadTitle(workspaceId: string, threadId: string, newTitle: string): Promise<ChatThread>;
    /**
     * Creates a new message in the specific chat thread.
     * @param workspaceId - The ID of the workspace.
     * @param threadId - The ID of the thread.
     * @param messageInput - The message details including payload, senderType, and optional persona.
     * @returns The created ChatThreadMessage.
     */
    createChatThreadMessage(workspaceId: string, threadId: string, messageInput: ChatThreadMessageInput): Promise<ChatThreadMessage>;
    scoreChatThreadMessage(workspaceId: string, threadId: string, scores: Array<DTOForgeChatMessageScoreInput>, tags?: Array<DTOForgeChatMessageTagInput>): Promise<void>;
    /**
     * Deletes a specific chat thread and all its messages.
     * @param workspaceId - The ID of the workspace.
     * @param threadId - The ID of the thread to delete.
     */
    deleteChatThread(workspaceId: string, threadId: string): Promise<void>;
}
