-export type Request = [(payload?: Record<string, unknown>, requestPayload?: Record<string, unknown>) => void, (error?: OCPPError) => void, Record<string, unknown>];
+export type IncomingRequestHandler = (commandPayload: JsonType) => JsonType | Promise<JsonType>;
+
+export type ResponseType = JsonType | OCPPError | string;
+
+export type BootNotificationRequest = OCPP16BootNotificationRequest;
+
+export type HeartbeatRequest = OCPP16HeartbeatRequest;
+
+export type StatusNotificationRequest = OCPP16StatusNotificationRequest;
+
+export type MeterValuesRequest = OCPP16MeterValuesRequest;
+
+export type AvailabilityType = OCPP16AvailabilityType;
+
+export const AvailabilityType = {
+ ...OCPP16AvailabilityType,
+};
+
+export type RequestCommand = OCPP16RequestCommand;
+
+export const RequestCommand = {
+ ...OCPP16RequestCommand,
+};
+
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand;
+
+export const IncomingRequestCommand = {
+ ...OCPP16IncomingRequestCommand,
+};
+
+export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+
+export const DiagnosticsStatus = {
+ ...OCPP16DiagnosticsStatus,
+};
+
+export type Request = [MessageType, string, RequestCommand, JsonType, JsonType];
+
+export type IncomingRequest = [MessageType, string, IncomingRequestCommand, JsonType, JsonType];