import { z } from 'zod';
import {
  allCommandsConfigSchema,
  ballSensorDiskThrowerModuleCommandSchema,
  changeSpeedActionCommandOptionsSchema,
  diskSensorBallShooterModuleCommandSchema,
  emergencyModuleCommandSchema,
  flagModuleCommandSchema,
  leftStarBackLaserModuleCommandSchema,
  lightsModuleCommandSchema,
  playSoundActionCommandOptionsSchema,
  rgbModuleCommandSchema,
  rightStarFrontLaserModuleCommandSchema,
  screenModuleCommandSchema,
  soundModuleCommandSchema,
  speedModuleCommandSchema,
  steeringWheelModuleCommandSchema,
} from './Command.schema';

export type ChangeSpeedActionCommandOptions = z.infer<typeof changeSpeedActionCommandOptionsSchema>;
export type PlaySoundActionCommandOptions = z.infer<typeof playSoundActionCommandOptionsSchema>;

export type BallSensorDiskThrowerModuleCommands = z.infer<typeof ballSensorDiskThrowerModuleCommandSchema>;
export type DiskSensorBallShooterModuleCommands = z.infer<typeof diskSensorBallShooterModuleCommandSchema>;
export type FlagModuleCommands = z.infer<typeof flagModuleCommandSchema>;
export type RGBModuleCommands = z.infer<typeof rgbModuleCommandSchema>;
export type SpeedModuleCommands = z.infer<typeof speedModuleCommandSchema>;
export type LeftStarBackLaserModuleCommands = z.infer<typeof leftStarBackLaserModuleCommandSchema>;
export type RightStarFrontLaserModuleCommands = z.infer<typeof rightStarFrontLaserModuleCommandSchema>;
export type ScreenModuleCommands = z.infer<typeof screenModuleCommandSchema>;
export type SteeringWheelModuleCommands = z.infer<typeof steeringWheelModuleCommandSchema>;
export type SoundModuleCommands = z.infer<typeof soundModuleCommandSchema>;
export type EmergencyModuleCommands = z.infer<typeof emergencyModuleCommandSchema>;
export type LightsModuleCommands = z.infer<typeof lightsModuleCommandSchema>;

export type AllCommandsConfig = z.infer<typeof allCommandsConfigSchema>;
