import { SmrtObject } from '@happyvertical/smrt-core'; import { ChatRoomOptions, ChatRoomStatus, ChatRoomType } from '../types.js'; type ChatRoomMetadata = Record; /** * Chat room supporting public channels, private groups, DMs, and agent conversations. * * @remarks * Room types: `public`, `private`, `dm`, `agent`. Agent rooms are auto-created by * {@link ChatService.createAgentSession} with `maxParticipants: 2`. DM rooms are * found-or-created via {@link ChatService.getOrCreateDM}. Threads are tracked via * {@link ChatThread} linked by `roomId`. Tenant-scoped (required). * * Internal model — room creation and mutation must go through the * membership/owner-checked {@link ChatService} (S5 #1392). The generated CRUD * surface is read-only (`get`/`list`); `create`/`update`/`delete` are NOT * generated, so a caller cannot forge a room or mutate room state via the raw * collection routes, skipping the ChatService authorization paths. */ export declare class ChatRoom extends SmrtObject { tenantId: string; name: string; description: string; roomType: ChatRoomType; status: ChatRoomStatus; topic: string; avatarUrl: string; isArchived: boolean; maxParticipants: number; metadata: string; createdByProfileId: string; lastMessageAt: Date | null; constructor(options?: ChatRoomOptions); getMetadata(): ChatRoomMetadata; setMetadata(data: ChatRoomMetadata): void; updateMetadata(updates: ChatRoomMetadata): void; isDM(): boolean; isAgentRoom(): boolean; isPublic(): boolean; isActive(): boolean; archive(): Promise; unarchive(): Promise; } export {}; //# sourceMappingURL=ChatRoom.d.ts.map