// Shared TypeScript types for ChatApp

export interface AuthUser {
  id: string;
  email: string;
  displayName: string;
  avatarUrl?: string;
}

export interface WorkspaceContext {
  id: string;
  role: string;
  membershipId: string;
}

export interface MessageEvent {
  messageId: string;
  channelId: string;
  userId: string;
  text: string;
  blocks?: any[];
  ts: string;
}

export interface ReactionEvent {
  messageId: string;
  channelId: string;
  userId: string;
  emoji: string;
}

export interface PresenceEvent {
  userId: string;
  workspaceId: string;
  presence: string;
}

export type ChannelType = 'public' | 'private' | 'group_dm' | 'dm' | 'shared';
export type UserRole = 'owner' | 'admin' | 'member' | 'guest';
export type PresenceStatus = 'online' | 'away' | 'dnd' | 'offline';
