+export type ResponseHandler = (
+ chargingStation: ChargingStation,
+ payload: JsonType,
+ requestPayload?: JsonType
+) => void | Promise<void>
+
+export type BootNotificationResponse =
+ | OCPP16BootNotificationResponse
+ | OCPP20BootNotificationResponse
+
+export type HeartbeatResponse = OCPP16HeartbeatResponse
+
+export type ClearCacheResponse = GenericResponse | OCPP20ClearCacheResponse
+
+export type StatusNotificationResponse = OCPP16StatusNotificationResponse
+
+export type MeterValuesResponse = OCPP16MeterValuesResponse
+
+export type DataTransferResponse = OCPP16DataTransferResponse
+
+export type DiagnosticsStatusNotificationResponse = OCPP16DiagnosticsStatusNotificationResponse
+
+export type FirmwareStatusNotificationResponse = OCPP16FirmwareStatusNotificationResponse
+
+export const AvailabilityStatus = {
+ ...OCPP16AvailabilityStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type AvailabilityStatus = OCPP16AvailabilityStatus
+
+export const ChargingProfileStatus = {
+ ...OCPP16ChargingProfileStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type ChargingProfileStatus = OCPP16ChargingProfileStatus
+
+export const ClearChargingProfileStatus = {
+ ...OCPP16ClearChargingProfileStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type ClearChargingProfileStatus = OCPP16ClearChargingProfileStatus
+
+export const ConfigurationStatus = {
+ ...OCPP16ConfigurationStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type ConfigurationStatus = OCPP16ConfigurationStatus
+
+export const UnlockStatus = {
+ ...OCPP16UnlockStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type UnlockStatus = OCPP16UnlockStatus
+
+export const TriggerMessageStatus = {
+ ...OCPP16TriggerMessageStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type TriggerMessageStatus = OCPP16TriggerMessageStatus
+
+export const DataTransferStatus = {
+ ...OCPP16DataTransferStatus
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type DataTransferStatus = OCPP16DataTransferStatus
+
+export type ReservationStatus = OCPP16ReservationStatus
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export const ReservationStatus = {
+ ...OCPP16ReservationStatus
+} as const
+
+export type CancelReservationStatus = GenericStatus
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export const CancelReservationStatus = {
+ ...GenericStatus
+} as const
+
+export type CancelReservationResponse = GenericResponse