import { SmrtObject } from '@happyvertical/smrt-core'; import { ChatParticipantOptions, ChatParticipantRole, ChatParticipantStatus, OnlineStatus } from '../types.js'; /** * Room membership row. Internal model — membership must be established and * mutated only through the membership/owner-checked {@link ChatService} * (S5 #1392). The generated CRUD surface is read-only (`get`/`list`); * `create`/`update`/`delete` are NOT generated, otherwise an authenticated * caller could POST a ChatParticipant to forge their own membership of any room * (privilege escalation) and bypass every downstream membership check. */ export declare class ChatParticipant extends SmrtObject { tenantId: string; roomId: string; profileId: string; role: ChatParticipantRole; status: ChatParticipantStatus; onlineStatus: OnlineStatus; lastReadMessageId: string | null; lastSeenAt: Date | null; joinedAt: Date | null; nickname: string; isMuted: boolean; isPinned: boolean; constructor(options?: ChatParticipantOptions); isActive(): boolean; isOwner(): boolean; isAdmin(): boolean; markRead(messageId: string): Promise; leave(): Promise; setOnline(status: OnlineStatus): Promise; } //# sourceMappingURL=ChatParticipant.d.ts.map