export type SessionRole = "vendor" | "customer"; export type ActorType = "human" | "agent"; export interface SessionEvent { event_id: string; session_id: string; seq: number; type: string; actor_member_id: string | null; actor_role: SessionRole | null; actor_type: ActorType | null; payload: Record; created_at: string; } export interface RoleGovernance { require_approval: boolean; } export interface SessionGovernance { vendor: RoleGovernance; customer: RoleGovernance; } export interface SessionUsage { content_event_count: number; content_events_remaining: number; approaching_event_limit: boolean; event_limit_reached: boolean; } export interface SessionMeta { session_id: string; status: string; title?: string; invite_code?: string; created_at?: string; resolved_at?: string | null; expires_at?: string | null; } export interface SessionSnapshot { events: SessionEvent[]; members: unknown[]; proposals: Array<{ proposal_id: string; kind: string; status: string; summary: string; payload?: Record; }>; meta: SessionMeta; governance?: SessionGovernance; caps?: Record; usage?: SessionUsage; }