import type { ReasoningMessagePart, SourceMessagePart, ThreadStep, MessageStatus, ImageMessagePart, ThreadMessage, ThreadUserMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart } from "../../types/message.js";
import type { CompleteAttachment } from "../../types/attachment.js";
import type { MessageTiming, TextMessagePart } from "../../types/message.js";
import type { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
type DataPrefixedPart = {
    readonly type: `data-${string}`;
    readonly data: any;
};
export type ThreadMessageLike = {
    readonly role: "assistant" | "user" | "system";
    readonly content: string | readonly (TextMessagePart | ReasoningMessagePart | SourceMessagePart | ImageMessagePart | FileMessagePart | DataMessagePart | Unstable_AudioMessagePart | DataPrefixedPart | {
        readonly type: "tool-call";
        readonly toolCallId?: string;
        readonly toolName: string;
        readonly args?: ReadonlyJSONObject;
        readonly argsText?: string;
        readonly artifact?: any;
        readonly result?: any | undefined;
        readonly isError?: boolean | undefined;
        readonly parentId?: string | undefined;
        readonly messages?: readonly ThreadMessage[] | undefined;
    })[];
    readonly id?: string | undefined;
    readonly createdAt?: Date | undefined;
    readonly status?: MessageStatus | undefined;
    readonly attachments?: readonly (Omit<CompleteAttachment, "content"> & {
        readonly content: readonly (ThreadUserMessagePart | DataPrefixedPart)[];
    })[] | undefined;
    readonly metadata?: {
        readonly unstable_state?: ReadonlyJSONValue;
        readonly unstable_annotations?: readonly ReadonlyJSONValue[] | undefined;
        readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;
        readonly steps?: readonly ThreadStep[] | undefined;
        readonly timing?: MessageTiming | undefined;
        readonly submittedFeedback?: {
            readonly type: "positive" | "negative";
        };
        readonly custom?: Record<string, unknown> | undefined;
    } | undefined;
};
export declare const fromThreadMessageLike: (like: ThreadMessageLike, fallbackId: string, fallbackStatus: MessageStatus) => ThreadMessage;
export {};
//# sourceMappingURL=thread-message-like.d.ts.map