import type {
  BallSensorDiskThrowerModuleStatus,
  DiskSensorBallShooterModuleStatus,
  EmergencyModuleStatus,
  FlagModuleStatus,
  RGBModuleStatus,
  ScreenModuleStatus,
  SpeedModuleStatus,
  StarLaserModuleStatus,
  SteeringWheelModuleStatus,
} from '../hardware';

/** Data that are triggered from Hardware Modules of Kart */
export type SocketHardwareOnDataEventsParams = {
  'hardware:disk-sensor-ball-shooter:onModuleStatus': DiskSensorBallShooterModuleStatus;
  'hardware:ball-sensor-disk-thrower:onModuleStatus': BallSensorDiskThrowerModuleStatus;
  'hardware:rgb:onModuleStatus': RGBModuleStatus;
  'hardware:flag:onModuleStatus': FlagModuleStatus;
  'hardware:speed:onModuleStatus': SpeedModuleStatus;
  'hardware:left-star-back-laser:onModuleStatus': StarLaserModuleStatus;
  'hardware:right-star-front-laser:onModuleStatus': StarLaserModuleStatus;
  'hardware:steering-wheel:onModuleStatus': SteeringWheelModuleStatus;
  'hardware:screen:onModuleStatus': ScreenModuleStatus;
};

/** Data that are triggered from Hardware Modules of Game Track */
export type SocketGameTrackHardwareOnDataEventsParams = {
  'hardware:emergency:onModuleStatus': EmergencyModuleStatus;
};
