import { SmrtObject } from '@happyvertical/smrt-core'; import { ChatMessageOptions, ChatMessageRole, ChatMessageType } from '../types.js'; /** * Chat message. Internal model — all mutations must go through the * membership-checked {@link ChatService} (S5 #1392). The generated CRUD surface * is read-only (`get`/`list`); `create`/`update`/`delete` are intentionally NOT * generated so an authenticated caller cannot write into an arbitrary room via * the raw collection routes, bypassing the room-membership authorization in * {@link ChatService.sendMessage}. */ export declare class ChatMessage extends SmrtObject { tenantId: string; roomId: string; threadId: string | null; senderProfileId: string; agentSessionId: string | null; content: string; messageType: ChatMessageType; role: ChatMessageRole; isEdited: boolean; editedAt: Date | null; isDeleted: boolean; replyToMessageId: string | null; metadata: string; toolCallData: string | null; attachments: string; constructor(options?: ChatMessageOptions); getAttachments(): Array<{ id: string; filename: string; contentType: string; size: number; url?: string; }>; setAttachments(items: Array<{ id: string; filename: string; contentType: string; size: number; url?: string; }>): void; getMetadata(): Record; setMetadata(data: Record): void; getToolCallData(): Record | null; setToolCallData(data: Record | null): void; hasAttachments(): boolean; isToolCall(): boolean; isToolResult(): boolean; isFromAgent(): boolean; isSystemMessage(): boolean; edit(newContent: string): Promise; softDelete(): Promise; getPreview(maxLength?: number): string; } //# sourceMappingURL=ChatMessage.d.ts.map