+export const IncomingRequestCommand = {
+ ...OCPP16IncomingRequestCommand,
+ ...OCPP20IncomingRequestCommand,
+} as const;
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand | OCPP20IncomingRequestCommand;
+
+export type IncomingRequest = [MessageType.CALL_MESSAGE, string, IncomingRequestCommand, JsonType];
+
+export type IncomingRequestHandler = (
+ chargingStation: ChargingStation,
+ commandPayload: JsonType,
+) => JsonType | Promise<JsonType>;
+
+export type ResponseCallback = (payload: JsonType, requestPayload: JsonType) => void;
+
+export type ErrorCallback = (ocppError: OCPPError, requestStatistic?: boolean) => void;
+
+export type CachedRequest = [
+ ResponseCallback,
+ ErrorCallback,
+ RequestCommand | IncomingRequestCommand,
+ JsonType,
+];
+
+export const MessageTrigger = {
+ ...OCPP16MessageTrigger,
+} as const;
+export type MessageTrigger = OCPP16MessageTrigger;
+
+export type BootNotificationRequest = OCPP16BootNotificationRequest | OCPP20BootNotificationRequest;
+
+export type HeartbeatRequest = OCPP16HeartbeatRequest;
+
+export type StatusNotificationRequest =
+ | OCPP16StatusNotificationRequest
+ | OCPP20StatusNotificationRequest;
+
+export type MeterValuesRequest = OCPP16MeterValuesRequest;
+
+export type DataTransferRequest = OCPP16DataTransferRequest;
+
+export type DiagnosticsStatusNotificationRequest = OCPP16DiagnosticsStatusNotificationRequest;
+
+export type FirmwareStatusNotificationRequest = OCPP16FirmwareStatusNotificationRequest;
+
+export const AvailabilityType = {
+ ...OCPP16AvailabilityType,
+ ...OperationalStatusEnumType,
+} as const;
+export type AvailabilityType = OCPP16AvailabilityType | OperationalStatusEnumType;
+
+export const DiagnosticsStatus = {
+ ...OCPP16DiagnosticsStatus,
+} as const;
+export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+
+export const FirmwareStatus = {
+ ...OCPP16FirmwareStatus,
+} as const;
+export type FirmwareStatus = OCPP16FirmwareStatus;
+
+export type ResponseType = JsonType | OCPPError;
+
+export type ReserveNowRequest = OCPP16ReserveNowRequest;