import { DTOThreadMessageCreateInput, DTOThreadMessageFinalizeInput, DTOThreadMessageRetryInput, DTOThreadReactionCreateInput, DTOThreadReactionDeleteInput } from "@supernova-studio/client";
import { DataCore } from "../data/SDKDataCore";
export declare class AreaThreads {
    /** Internal: Engine */
    private dataCore;
    constructor(dataCore: DataCore);
    /**
     * Gets the messages for a specific thread.
     * @param threadId - The ID of the thread.
     * @returns An array of ThreadMessage objects.
     */
    getMessages(threadId: string): Promise<import("../..").ThreadMessageList>;
    /**
     * Creates a new message in a specific thread.
     * @param threadId - The ID of the thread.
     * @param input - The input for the message.
     * @returns A new ThreadMessage object.
     */
    createMessage(threadId: string, input: DTOThreadMessageCreateInput): Promise<import("../..").ThreadMessage>;
    /**
     * Retries an agent message in a specific thread.
     * @param threadId - The ID of the thread.
     * @param input - The input for the retry.
     * @returns A new ThreadMessage object.
     */
    retryMessage(threadId: string, input: DTOThreadMessageRetryInput): Promise<import("../..").ThreadMessage>;
    /**
     * Creates a new message reaction in a specific thread.
     * @param threadId - The ID of the thread.
     * @param input - The input for the message reaction.
     * @returns A new ThreadMessageReaction object.
     */
    createMessageReaction(threadId: string, input: DTOThreadReactionCreateInput): Promise<import("../..").ThreadMessageReaction>;
    /**
     * Removes a message reaction from a specific thread.
     * @param threadId - The ID of the thread.
     * @param input - The input for the message reaction.
     * @returns A new ThreadMessageReaction object.
     */
    removeMessageReaction(threadId: string, input: DTOThreadReactionDeleteInput): Promise<void>;
    /**
     * Finalizes a message in a specific thread.
     * @param threadId - The ID of the thread.
     * @param input - The input for the thread.
     * @returns Finalize input
     */
    finalizeMessage(threadId: string, input: DTOThreadMessageFinalizeInput): Promise<{
        message?: {
            id?: string;
            createdAt?: string;
            updatedAt?: string;
            parentMessageId?: string;
            threadId?: string;
            sender?: {
                type?: "User";
                userId?: string;
            } | {
                type?: "Agent";
                agentType?: "Ask" | "Document" | "Prototype" | "ReleaseNotes";
            } | {
                type?: "System";
                onBehalfOfUserId?: string;
            };
            body?: string;
            isPrompt?: boolean;
            isRetry?: boolean;
            startsNewThread?: boolean;
            agentResponseTrackerId?: string;
            attachments?: {
                files?: {
                    id?: string;
                    name?: string;
                    source?: {
                        type?: "UserUpload";
                        userId?: string;
                    } | {
                        type?: "Figma";
                        renderMode?: "Image" | "HTML" | "JSON";
                    };
                    url?: string;
                }[];
                iterationId?: string;
                templateId?: string;
                figmaNodes?: {
                    id?: string;
                    code?: {
                        id?: string;
                        name?: string;
                        source?: {
                            type?: "UserUpload";
                            userId?: string;
                        } | {
                            type?: "Figma";
                            renderMode?: "Image" | "HTML" | "JSON";
                        };
                        url?: string;
                    };
                    state?: "Success" | "Failed" | "Optimizing";
                    origin?: {
                        nodeId?: string;
                        fileId?: string;
                        fileName?: string;
                        fileLastEditedAt?: string;
                        nodeName?: string;
                    };
                    thumbnail?: {
                        id?: string;
                        name?: string;
                        source?: {
                            type?: "UserUpload";
                            userId?: string;
                        } | {
                            type?: "Figma";
                            renderMode?: "Image" | "HTML" | "JSON";
                        };
                        url?: string;
                    };
                    json?: {
                        id?: string;
                        name?: string;
                        source?: {
                            type?: "UserUpload";
                            userId?: string;
                        } | {
                            type?: "Figma";
                            renderMode?: "Image" | "HTML" | "JSON";
                        };
                        url?: string;
                    };
                    html?: {
                        id?: string;
                        name?: string;
                        source?: {
                            type?: "UserUpload";
                            userId?: string;
                        } | {
                            type?: "Figma";
                            renderMode?: "Image" | "HTML" | "JSON";
                        };
                        url?: string;
                    };
                }[];
            };
            annotations?: {
                prompt?: string;
                elements?: {
                    xpath?: string;
                    line?: string;
                }[];
            }[];
            replyToMessageId?: string;
            promptMetadata?: Record<string, any>;
        };
    }>;
}
