export interface BaseMessage { type: string; } export interface ClientMessage extends BaseMessage { channel?: string; filterOptions?: string[]; } export interface ServerMessage extends BaseMessage { clientId?: string; channel?: string; message?: string; event?: string; } export interface ErrorMessage extends ServerMessage { type: 'error'; code?: number; message: string; } export interface MessagePayload { [key: string]: any; }