// Type declarations for socket.io mock
declare module 'socket.io' {
  export class Server {
    to(room: string): this;
    in(room: string): this;
    emit(event: string, ...args: any[]): boolean;
  }

  export interface Socket {
    id: string;
    handshake: {
      auth: Record<string, any>;
      query: Record<string, any>;
      headers: Record<string, any>;
      time: string;
      address: string;
      xdomain: boolean;
      secure: boolean;
      issued: number;
      url: string;
    };
    rooms: Set<string>;
    data: any;
    connected: boolean;
    join(room: string | string[]): void;
    leave(room: string): void;
    emit(event: string, ...args: any[]): boolean;
    on(event: string, listener: Function): this;
    once(event: string, listener: Function): this;
    disconnect(close?: boolean): this;
    to(room: string): this;
    broadcast: any;
  }
}
