export type ChargePointGetDiagnosticsResponse = { success?: boolean; requestId?: number; fileName?: string };

export type ChargePointGetSecurityLogResponse = { data?: { id: number; status?: string; file_name?: string; logType: 'SecurityLog'; chargePointId: number } };

export type ChargePointReserveResponse = { success?: boolean; reservationId?: number };

export type ChargePointResetResponse = { success?: boolean };

export type ChargePointSendDataTransferResponse = { status?: 'Accepted' | 'Rejected' | 'UnknownMessageId' | 'UnknownVendorId'; data?: string };

export type ChargePointSetChargingProfileResponse = { data?: { id?: number } };

export type ChargePointStartChargingSessionWithoutEvseResponse = { success: boolean; authorizationId: number; message?: string; errorCode?: 'BILLING_NOT_ASSOCIATED' | 'BILLING_NOT_PARTNER_ASSOCIATED' | 'INTERNAL_ISSUE' | 'AGILE_STREETS_CALCULATE' | 'AGILE_STREETS_COMMUNICATION' | 'CHARGING_NOT_ALLOWED' | 'LOCATION_IS_CLOSED' | 'USER_VALIDATION_NOT_COMPLETE' | 'TERMS_NOT_ACCEPTED' | 'USER_IS_DISABLED' | 'SUBSCRIPTION_REQUIRED' | 'SESSION_ALREADY_RUNNING' | 'PREVIOUS_SESSION_NOT_PAID' | 'ACCESS_RESTRICTED' };

export type ChargePointStartChargingSessionResponse = { success: boolean; sessionId: number; authorizationId: number; message?: string; errorCode?: 'BILLING_NOT_ASSOCIATED' | 'BILLING_NOT_PARTNER_ASSOCIATED' | 'INTERNAL_ISSUE' | 'SESSION_EXISTS' | 'AGILE_STREETS_CALCULATE' | 'AGILE_STREETS_COMMUNICATION' | 'CHARGING_NOT_ALLOWED' | 'LOCATION_IS_CLOSED' | 'USER_VALIDATION_NOT_COMPLETE' | 'TERMS_NOT_ACCEPTED' | 'USER_IS_DISABLED' | 'SUBSCRIPTION_REQUIRED' | 'SESSION_ALREADY_RUNNING' | 'PREVIOUS_SESSION_NOT_PAID' | 'ACCESS_RESTRICTED' | 'PAYMENT_METHOD_REQUIRED' | 'CANNOT_BILL_PAYMENT_METHOD' | 'CORPORATE_ACCOUNT_LIMIT_REACHED' | 'CANNOT_USE_EXPIRED_PAYMENT_METHOD' | 'CANNOT_USE_PAYMENT_METHOD' | 'PAYMENT_NO_FUNDS' };

export type ChargePointSyncConfigurationResponse = { success?: boolean; requestId?: number };

export type ChargePointEvseUnlockResponse = { success?: boolean };

export type EvseStartChargingWithEvseIdResponse = { success: boolean; sessionId: number; authorizationId: number; message?: string; errorCode?: 'BILLING_NOT_ASSOCIATED' | 'BILLING_NOT_PARTNER_ASSOCIATED' | 'INTERNAL_ISSUE' | 'SESSION_EXISTS' | 'AGILE_STREETS_CALCULATE' | 'AGILE_STREETS_COMMUNICATION' | 'CHARGING_NOT_ALLOWED' | 'LOCATION_IS_CLOSED' | 'USER_VALIDATION_NOT_COMPLETE' | 'TERMS_NOT_ACCEPTED' | 'USER_IS_DISABLED' | 'SUBSCRIPTION_REQUIRED' | 'SESSION_ALREADY_RUNNING' | 'PREVIOUS_SESSION_NOT_PAID' | 'ACCESS_RESTRICTED' | 'PAYMENT_METHOD_REQUIRED' | 'CANNOT_BILL_PAYMENT_METHOD' | 'CORPORATE_ACCOUNT_LIMIT_REACHED' | 'CANNOT_USE_EXPIRED_PAYMENT_METHOD' | 'CANNOT_USE_PAYMENT_METHOD' | 'PAYMENT_NO_FUNDS' };

export type ChangeFlexibilityAssetStatusResponse = { status: 'enabled' | 'disabled'; endsAt?: string };

export type FlexibilityAssetCreateActivationRequestResponse = { id: number; timestamp: string; assetId: number; periods: { startTime?: string; endTime?: string } & { energy?: number; maxPower?: number }[] };

export type LocationCheckBookingAvailabilityResponse = { data?: { evseId: number; availableSlots: { startAt: string; endAt: string }[] }[] };

export type UserExportAllPrivateDataResponse = { downloadUrl?: string };

export type NotificationsSubscribeResponse = { data?: { id: number; via: 'webhook' | 'kafka'; notifications: 'AuthorizationNotification' | 'authorization.changed' | 'BootNotification' | 'ChargePointChangedNotification' | 'chargePoint.changed' | 'evse.changed' | 'ChargePointSyncConfigurationNotification' | 'CircuitConsumptionNotification' | 'circuit.changed' | 'DiagnosticsStatusNotification' | 'HardwareStatusNotification' | 'LocationChangedNotification' | 'NetworkStatusNotification' | 'SecurityEventNotification' | 'SessionMeterValuesNotification' | 'SessionStartStopNotification' | 'session.start.stop.notification' | 'SessionUpdateNotification' | 'UserChangedNotification' | 'SubOperatorChangedNotification' | 'TariffChangedNotification' | 'user.subscriptionChanged' | 'user.subscription.changed' | 'ReservationChangedNotification' | 'PaymentMethodChangedNotification' | 'PartnerInviteChangedNotification' | 'reservation.changed' | 'user.paymentMethod.changed' | 'userBalance.changed' | 'partnerInvite.changed' | 'roamingPlatform.changed' | 'parkingSpace.occupancyStatus.changed' | 'partner.changed' | 'transaction.changed' | 'settlementReport.created' | 'idTag.changed' | 'chargePoint.dataTransferReceived' | 'subscriptionPlan.changed' | 'user.invoiceDetails.changed' | 'cdr.received' | 'chargingProfile.applied' | 'installerJob.changed'[]; webhook?: { callbackUrl: string }; kafka?: { topic: string; brokers: string[]; compressionCodec?: 'none' | 'gzip' | 'snappy' | 'lz4'; securityProtocol?: 'PLAINTEXT' | 'SASL_SSL'; saslMechanism?: 'PLAIN' | 'SCRAM-SHA-256' | 'SCRAM-SHA-512'; saslUsername?: string; saslPassword?: string } } };

export type NotificationsListingResponse = { data?: { id: number; via: 'webhook' | 'kafka'; notifications: 'AuthorizationNotification' | 'authorization.changed' | 'BootNotification' | 'ChargePointChangedNotification' | 'chargePoint.changed' | 'evse.changed' | 'ChargePointSyncConfigurationNotification' | 'CircuitConsumptionNotification' | 'circuit.changed' | 'DiagnosticsStatusNotification' | 'HardwareStatusNotification' | 'LocationChangedNotification' | 'NetworkStatusNotification' | 'SecurityEventNotification' | 'SessionMeterValuesNotification' | 'SessionStartStopNotification' | 'session.start.stop.notification' | 'SessionUpdateNotification' | 'UserChangedNotification' | 'SubOperatorChangedNotification' | 'TariffChangedNotification' | 'user.subscriptionChanged' | 'user.subscription.changed' | 'ReservationChangedNotification' | 'PaymentMethodChangedNotification' | 'PartnerInviteChangedNotification' | 'reservation.changed' | 'user.paymentMethod.changed' | 'userBalance.changed' | 'partnerInvite.changed' | 'roamingPlatform.changed' | 'parkingSpace.occupancyStatus.changed' | 'partner.changed' | 'transaction.changed' | 'settlementReport.created' | 'idTag.changed' | 'chargePoint.dataTransferReceived' | 'subscriptionPlan.changed' | 'user.invoiceDetails.changed' | 'cdr.received' | 'chargingProfile.applied' | 'installerJob.changed'[]; webhook?: { callbackUrl: string }; kafka?: { topic: string; brokers: string[]; compressionCodec?: 'none' | 'gzip' | 'snappy' | 'lz4'; securityProtocol?: 'PLAINTEXT' | 'SASL_SSL'; saslMechanism?: 'PLAIN' | 'SCRAM-SHA-256' | 'SCRAM-SHA-512'; saslUsername?: string; saslPassword?: string } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type NotificationReadResponse = { data?: { id: number; via: 'webhook' | 'kafka'; notifications: 'AuthorizationNotification' | 'authorization.changed' | 'BootNotification' | 'ChargePointChangedNotification' | 'chargePoint.changed' | 'evse.changed' | 'ChargePointSyncConfigurationNotification' | 'CircuitConsumptionNotification' | 'circuit.changed' | 'DiagnosticsStatusNotification' | 'HardwareStatusNotification' | 'LocationChangedNotification' | 'NetworkStatusNotification' | 'SecurityEventNotification' | 'SessionMeterValuesNotification' | 'SessionStartStopNotification' | 'session.start.stop.notification' | 'SessionUpdateNotification' | 'UserChangedNotification' | 'SubOperatorChangedNotification' | 'TariffChangedNotification' | 'user.subscriptionChanged' | 'user.subscription.changed' | 'ReservationChangedNotification' | 'PaymentMethodChangedNotification' | 'PartnerInviteChangedNotification' | 'reservation.changed' | 'user.paymentMethod.changed' | 'userBalance.changed' | 'partnerInvite.changed' | 'roamingPlatform.changed' | 'parkingSpace.occupancyStatus.changed' | 'partner.changed' | 'transaction.changed' | 'settlementReport.created' | 'idTag.changed' | 'chargePoint.dataTransferReceived' | 'subscriptionPlan.changed' | 'user.invoiceDetails.changed' | 'cdr.received' | 'chargingProfile.applied' | 'installerJob.changed'[]; webhook?: { callbackUrl: string }; kafka?: { topic: string; brokers: string[]; compressionCodec?: 'none' | 'gzip' | 'snappy' | 'lz4'; securityProtocol?: 'PLAINTEXT' | 'SASL_SSL'; saslMechanism?: 'PLAIN' | 'SCRAM-SHA-256' | 'SCRAM-SHA-512'; saslUsername?: string; saslPassword?: string } } };

export type NotificationsCreateResponse = { data?: { id: number; via: 'webhook' | 'kafka'; notifications: 'AuthorizationNotification' | 'authorization.changed' | 'BootNotification' | 'ChargePointChangedNotification' | 'chargePoint.changed' | 'evse.changed' | 'ChargePointSyncConfigurationNotification' | 'CircuitConsumptionNotification' | 'circuit.changed' | 'DiagnosticsStatusNotification' | 'HardwareStatusNotification' | 'LocationChangedNotification' | 'NetworkStatusNotification' | 'SecurityEventNotification' | 'SessionMeterValuesNotification' | 'SessionStartStopNotification' | 'session.start.stop.notification' | 'SessionUpdateNotification' | 'UserChangedNotification' | 'SubOperatorChangedNotification' | 'TariffChangedNotification' | 'user.subscriptionChanged' | 'user.subscription.changed' | 'ReservationChangedNotification' | 'PaymentMethodChangedNotification' | 'PartnerInviteChangedNotification' | 'reservation.changed' | 'user.paymentMethod.changed' | 'userBalance.changed' | 'partnerInvite.changed' | 'roamingPlatform.changed' | 'parkingSpace.occupancyStatus.changed' | 'partner.changed' | 'transaction.changed' | 'settlementReport.created' | 'idTag.changed' | 'chargePoint.dataTransferReceived' | 'subscriptionPlan.changed' | 'user.invoiceDetails.changed' | 'cdr.received' | 'chargingProfile.applied' | 'installerJob.changed'[]; webhook?: { callbackUrl: string }; kafka?: { topic: string; brokers: string[]; compressionCodec?: 'none' | 'gzip' | 'snappy' | 'lz4'; securityProtocol?: 'PLAINTEXT' | 'SASL_SSL'; saslMechanism?: 'PLAIN' | 'SCRAM-SHA-256' | 'SCRAM-SHA-512'; saslUsername?: string; saslPassword?: string } } };

export type AuthorizationsListingResponse = { data?: { id: number; method: 'user_device' | 'id_tag' | 'admin' | 'plug_and_charge' | 'roaming' | 'payment_terminal' | 'plug_and_charge_iso15118'; source: 'local' | 'roaming'; createdAt: string; status: 'accepted' | 'rejected' | 'pending'; rejectionReason: string; userId?: number; idTagUid?: string; roaming?: { platformId?: number; platformRoleId?: number; platformRole?: string; reference?: string; client?: string }; chargePointId: number; evseId?: number; sessionIds?: number[]; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type AuthorizationReadResponse = { data?: { id: number; method: 'user_device' | 'id_tag' | 'admin' | 'plug_and_charge' | 'roaming' | 'payment_terminal' | 'plug_and_charge_iso15118'; source: 'local' | 'roaming'; createdAt: string; status: 'accepted' | 'rejected' | 'pending'; rejectionReason: string; userId?: number; idTagUid?: string; roaming?: { platformId?: number; platformRoleId?: number; platformRole?: string; reference?: string; client?: string }; chargePointId: number; evseId?: number; sessionIds?: number[]; lastUpdatedAt?: string } };

export type BookingRequestsListingResponse = { data?: { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'create'; userId: number; locationId: number; evseId?: number; evseCriteria?: { currentType?: 'ac' | 'dc'; minPower?: number; maxPower?: number; connectorType?: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50' }; startAt: string; endAt: string } & { bookingId?: number } | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'update'; bookingId: number; userId?: number; startAt?: string; endAt?: string } & Record<string, unknown> | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'cancel'; bookingId: number } & Record<string, unknown>[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type BookingRequestCreateResponse = { data?: { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'create'; userId: number; locationId: number; evseId?: number; evseCriteria?: { currentType?: 'ac' | 'dc'; minPower?: number; maxPower?: number; connectorType?: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50' }; startAt: string; endAt: string } & { bookingId?: number } | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'update'; bookingId: number; userId?: number; startAt?: string; endAt?: string } & Record<string, unknown> | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'cancel'; bookingId: number } & Record<string, unknown> };

export type BookingRequestReadResponse = { data?: { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'create'; userId: number; locationId: number; evseId?: number; evseCriteria?: { currentType?: 'ac' | 'dc'; minPower?: number; maxPower?: number; connectorType?: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50' }; startAt: string; endAt: string } & { bookingId?: number } | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'update'; bookingId: number; userId?: number; startAt?: string; endAt?: string } & Record<string, unknown> | { id?: number; type?: string; status?: 'pending' | 'approved' | 'rejected'; rejectionReason?: string; createdAt?: string; lastUpdatedAt?: string } & { type: 'cancel'; bookingId: number } & Record<string, unknown> };

export type BookingsListingResponse = { data?: { id: number; userId?: number; ocpiTokenId?: number; locationId: number; startAt: string; endAt: string; status: 'accepted' | 'reserved' | 'completed' | 'cancelled' | 'no-show' | 'failed'; sessionId?: number; createdAt: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type BookingReadResponse = { data?: { id: number; userId?: number; ocpiTokenId?: number; locationId: number; startAt: string; endAt: string; status: 'accepted' | 'reserved' | 'completed' | 'cancelled' | 'no-show' | 'failed'; sessionId?: number; createdAt: string; lastUpdatedAt: string } & { bookedEvses?: { id: number }[] } };

export type CdrsListingResponse = { data?: { id: number; operatorId: number; platformId: number; protocolType: 'OCPI' | 'Hubject'; sessionId?: string; receivedAt: string; startTime: string; endTime: string; ocpiData?: { version: '2.1.1' | '2.2'; signedData?: Record<string, unknown>; cdrToken?: Record<string, unknown>; authMethod?: string; authorizationReference?: string; cdrLocation?: Record<string, unknown>; chargingPeriods?: Record<string, unknown>[]; currency?: string; totalCost?: number; totalFixedCost?: number; totalEnergy?: number; totalEnergyCost?: number; totalTime?: number; totalTimeCost?: number; totalParkingTime?: number; totalParkingCost?: number; invoiceReferenceId?: string }; oicpData?: { sessionId: string; version: '2.2' | '2.3'; cpoPartnerSessionId?: string; empPartnerSessionId?: string; partnerProductId?: string; evseId: string; identification: { plugAndChargeIdentification?: { evcoId: string }; qrCodeIdentification?: { evcoID: string; hashedPin?: { value: string; function: string; legacyHashedData?: { function: string; salt?: string; value?: string }; pin?: string }; pin?: string }; rfidIdentification?: { uid: string; evcoId?: string; rfid: string; printedNumber?: string; expiryDate?: string }; rfidMifareFamilyIdentification?: { uid: string }; remoteIdentification?: { evcoId: string } }; chargingStart?: string; chargingEnd?: string; sessionStart: string; sessionEnd: string; meterValueStart?: number; meterValueEnd?: number; meterValueInBetween?: string; consumedEnergy?: number; signedMeteringValues?: { signedMeteringValue?: string; meteringStatus?: 'Start' | 'Progress' | 'End' }[]; meteringSignature?: string; calibrationLawVerificationInfo?: { calibrationLawCertificateId?: string; publicKey?: string; meteringSignatureUrl?: string; meteringSignatureEncodingFormat?: string; signedMeteringValuesVerificationInstruction?: string }; hubOperatorId?: string; hubProviderId?: string; operatorId?: string }; roamingId?: string; credit?: boolean; isLocal: boolean; lastUpdatedAt?: string; sentAt?: string; deliveryResponse?: 'success' | 'fail'; externalAppData?: Record<string, unknown> }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CdrReadResponse = { data?: { id: number; operatorId: number; platformId: number; protocolType: 'OCPI' | 'Hubject'; sessionId?: string; receivedAt: string; startTime: string; endTime: string; ocpiData?: { version: '2.1.1' | '2.2'; signedData?: Record<string, unknown>; cdrToken?: Record<string, unknown>; authMethod?: string; authorizationReference?: string; cdrLocation?: Record<string, unknown>; chargingPeriods?: Record<string, unknown>[]; currency?: string; totalCost?: number; totalFixedCost?: number; totalEnergy?: number; totalEnergyCost?: number; totalTime?: number; totalTimeCost?: number; totalParkingTime?: number; totalParkingCost?: number; invoiceReferenceId?: string }; oicpData?: { sessionId: string; version: '2.2' | '2.3'; cpoPartnerSessionId?: string; empPartnerSessionId?: string; partnerProductId?: string; evseId: string; identification: { plugAndChargeIdentification?: { evcoId: string }; qrCodeIdentification?: { evcoID: string; hashedPin?: { value: string; function: string; legacyHashedData?: { function: string; salt?: string; value?: string }; pin?: string }; pin?: string }; rfidIdentification?: { uid: string; evcoId?: string; rfid: string; printedNumber?: string; expiryDate?: string }; rfidMifareFamilyIdentification?: { uid: string }; remoteIdentification?: { evcoId: string } }; chargingStart?: string; chargingEnd?: string; sessionStart: string; sessionEnd: string; meterValueStart?: number; meterValueEnd?: number; meterValueInBetween?: string; consumedEnergy?: number; signedMeteringValues?: { signedMeteringValue?: string; meteringStatus?: 'Start' | 'Progress' | 'End' }[]; meteringSignature?: string; calibrationLawVerificationInfo?: { calibrationLawCertificateId?: string; publicKey?: string; meteringSignatureUrl?: string; meteringSignatureEncodingFormat?: string; signedMeteringValuesVerificationInstruction?: string }; hubOperatorId?: string; hubProviderId?: string; operatorId?: string }; roamingId?: string; credit?: boolean; isLocal: boolean; lastUpdatedAt?: string; sentAt?: string; deliveryResponse?: 'success' | 'fail'; externalAppData?: Record<string, unknown> } };

export type ChargePointDowntimePeriodsListingResponse = { data?: { chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointDowntimePeriodCreateResponse = { data?: { chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type ChargePointDowntimePeriodReadResponse = { data?: { chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type ChargePointDowntimePeriodUpdateResponse = { data?: { chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type ChargePointModelsListingResponse = { data?: { id: number; name: string; vendorId: number; defaultPhoto: string; userManual: string; installerManual?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointModelCreateResponse = { data?: { id: number; name: string; vendorId: number; defaultPhoto: string; userManual: string; installerManual?: string } };

export type ChargePointModelReadResponse = { data?: { id: number; name: string; vendorId: number; defaultPhoto: string; userManual: string; installerManual?: string } };

export type ChargePointModelUpdateResponse = { data?: { id: number; name: string; vendorId: number; defaultPhoto: string; userManual: string; installerManual?: string } };

export type ChargePointVendorsListingResponse = { data?: { id: number; name: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointVendorCreateResponse = { data?: { id: number; name: string } };

export type ChargePointVendorReadResponse = { data?: { id: number; name: string } };

export type ChargePointVendorUpdateResponse = { data?: { id: number; name: string } };

export type ChargePointStatusReadResponse = { data?: { networkStatus: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardwareStatus?: 'available' | 'unavailable' | 'faulted'; evses?: { hardwareStatus?: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } & { id?: number }[]; lastUpdatedAt?: string } };

export type ChargePointCreateResponse = { data?: { id?: number; name?: string; type?: 'private' | 'public' | 'personal'; pin?: string; locationId?: number; chargingZoneId?: number; electricityRateId?: number; subscription?: { required?: boolean; planIds?: number[] }; networkType?: 'cellular' | 'ethernet' | 'wlan'; status?: 'enabled' | 'disabled' | 'out of order' | 'demo'; managedByOperator?: boolean; externalId?: string; network?: { id?: string; protocol?: 'ocpp 1.5' | 'ocpp 1.6' | 'ocpp 1.6 soap' | 'ocpp 2.0.1'; password?: string; ip?: string; port?: number }; capabilities?: 'remote_start_stop_capable' | 'meter_values' | 'stop_transaction_on_ev_disconnect' | 'disregard_the_heartbeats' | 'display_messages'[]; autoStartWithoutAuthorization?: boolean; disableAutoStartEmulation?: boolean; security?: { desiredProfile?: number; currentProfile: number; hardwareEnabledProfile?: number; desiredProfileStatus?: 'applied' | 'pending' | 'rejected' }; modelId?: number; enableAutoFaultRecovery?: boolean; user?: { id?: number; automaticFirmwareUpdatesEnabled?: boolean }; partner?: { id?: number; contractId?: number; contactId?: number; corporateBillingAsDefault?: boolean; accessType?: 'private_view_private_use' | 'private_view_public_use' | 'public_view_private_use'; notice?: { locale?: string; translation?: string }[] }; utilityId?: number; createdAt?: string; firstContactAt?: string; roamingOperatorId?: number; chargingProfile?: { id?: number; minChargingRate?: number; schedulePeriods?: { startPeriod?: number; limit?: number; numberPhases?: number }[]; scheduleStart?: string; chargingRateUnit?: 'A' | 'W'; stackLevel?: number; chargingProfileKind?: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind?: 'daily' | 'weekly'; chargingCompleteAt?: string; purpose?: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo?: string; validFrom?: string; duration?: number }; displayTariffAndCosts?: boolean; lastBootNotification?: { model?: string; vendor?: string; chargeBoxSerialNumber?: string; chargePointSerialNumber?: string; firmwareVersion?: string; iccid?: string; imsi?: string; meterSerialNumber?: string; meterType?: string }; networkStatus?: 'never_connected' | 'available' | 'temporarily_unavailable' | 'long-term_unavailable'; hardwareStatus?: 'available' | 'unavailable' | 'faulted'; vendorErrorCode?: string; tags?: string[]; sharingCode?: string; enabledRandomisedDelay?: boolean; noticeId?: number; usesRenewableEnergy?: boolean; integratedAt?: string; manufacturedAt?: string; lastUpdatedAt?: string; ocppConnectedChargePointId?: number } & { communicationMode?: 'none' | 'direct_ocpp' | 'via_ocpp_connected_charge_point' | 'roaming' } };

export type ChargePointsListingResponse = { data?: { id?: number; name?: string; type?: 'private' | 'public' | 'personal'; pin?: string; locationId?: number; chargingZoneId?: number; electricityRateId?: number; subscription?: { required?: boolean; planIds?: number[] }; networkType?: 'cellular' | 'ethernet' | 'wlan'; status?: 'enabled' | 'disabled' | 'out of order' | 'demo'; managedByOperator?: boolean; externalId?: string; network?: { id?: string; protocol?: 'ocpp 1.5' | 'ocpp 1.6' | 'ocpp 1.6 soap' | 'ocpp 2.0.1'; password?: string; ip?: string; port?: number }; capabilities?: 'remote_start_stop_capable' | 'meter_values' | 'stop_transaction_on_ev_disconnect' | 'disregard_the_heartbeats' | 'display_messages'[]; autoStartWithoutAuthorization?: boolean; disableAutoStartEmulation?: boolean; security?: { desiredProfile?: number; currentProfile: number; hardwareEnabledProfile?: number; desiredProfileStatus?: 'applied' | 'pending' | 'rejected' }; modelId?: number; enableAutoFaultRecovery?: boolean; user?: { id?: number; automaticFirmwareUpdatesEnabled?: boolean }; partner?: { id?: number; contractId?: number; contactId?: number; corporateBillingAsDefault?: boolean; accessType?: 'private_view_private_use' | 'private_view_public_use' | 'public_view_private_use'; notice?: { locale?: string; translation?: string }[] }; utilityId?: number; createdAt?: string; firstContactAt?: string; roamingOperatorId?: number; chargingProfile?: { id?: number; minChargingRate?: number; schedulePeriods?: { startPeriod?: number; limit?: number; numberPhases?: number }[]; scheduleStart?: string; chargingRateUnit?: 'A' | 'W'; stackLevel?: number; chargingProfileKind?: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind?: 'daily' | 'weekly'; chargingCompleteAt?: string; purpose?: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo?: string; validFrom?: string; duration?: number }; displayTariffAndCosts?: boolean; lastBootNotification?: { model?: string; vendor?: string; chargeBoxSerialNumber?: string; chargePointSerialNumber?: string; firmwareVersion?: string; iccid?: string; imsi?: string; meterSerialNumber?: string; meterType?: string }; networkStatus?: 'never_connected' | 'available' | 'temporarily_unavailable' | 'long-term_unavailable'; hardwareStatus?: 'available' | 'unavailable' | 'faulted'; vendorErrorCode?: string; tags?: string[]; sharingCode?: string; enabledRandomisedDelay?: boolean; noticeId?: number; usesRenewableEnergy?: boolean; integratedAt?: string; manufacturedAt?: string; lastUpdatedAt?: string; ocppConnectedChargePointId?: number } & { communicationMode?: 'none' | 'direct_ocpp' | 'via_ocpp_connected_charge_point' | 'roaming' }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointUpdateResponse = { data?: { id?: number; name?: string; type?: 'private' | 'public' | 'personal'; pin?: string; locationId?: number; chargingZoneId?: number; electricityRateId?: number; subscription?: { required?: boolean; planIds?: number[] }; networkType?: 'cellular' | 'ethernet' | 'wlan'; status?: 'enabled' | 'disabled' | 'out of order' | 'demo'; managedByOperator?: boolean; externalId?: string; network?: { id?: string; protocol?: 'ocpp 1.5' | 'ocpp 1.6' | 'ocpp 1.6 soap' | 'ocpp 2.0.1'; password?: string; ip?: string; port?: number }; capabilities?: 'remote_start_stop_capable' | 'meter_values' | 'stop_transaction_on_ev_disconnect' | 'disregard_the_heartbeats' | 'display_messages'[]; autoStartWithoutAuthorization?: boolean; disableAutoStartEmulation?: boolean; security?: { desiredProfile?: number; currentProfile: number; hardwareEnabledProfile?: number; desiredProfileStatus?: 'applied' | 'pending' | 'rejected' }; modelId?: number; enableAutoFaultRecovery?: boolean; user?: { id?: number; automaticFirmwareUpdatesEnabled?: boolean }; partner?: { id?: number; contractId?: number; contactId?: number; corporateBillingAsDefault?: boolean; accessType?: 'private_view_private_use' | 'private_view_public_use' | 'public_view_private_use'; notice?: { locale?: string; translation?: string }[] }; utilityId?: number; createdAt?: string; firstContactAt?: string; roamingOperatorId?: number; chargingProfile?: { id?: number; minChargingRate?: number; schedulePeriods?: { startPeriod?: number; limit?: number; numberPhases?: number }[]; scheduleStart?: string; chargingRateUnit?: 'A' | 'W'; stackLevel?: number; chargingProfileKind?: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind?: 'daily' | 'weekly'; chargingCompleteAt?: string; purpose?: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo?: string; validFrom?: string; duration?: number }; displayTariffAndCosts?: boolean; lastBootNotification?: { model?: string; vendor?: string; chargeBoxSerialNumber?: string; chargePointSerialNumber?: string; firmwareVersion?: string; iccid?: string; imsi?: string; meterSerialNumber?: string; meterType?: string }; networkStatus?: 'never_connected' | 'available' | 'temporarily_unavailable' | 'long-term_unavailable'; hardwareStatus?: 'available' | 'unavailable' | 'faulted'; vendorErrorCode?: string; tags?: string[]; sharingCode?: string; enabledRandomisedDelay?: boolean; noticeId?: number; usesRenewableEnergy?: boolean; integratedAt?: string; manufacturedAt?: string; lastUpdatedAt?: string; ocppConnectedChargePointId?: number } & { communicationMode?: 'none' | 'direct_ocpp' | 'via_ocpp_connected_charge_point' | 'roaming' } };

export type ChargePointReadResponse = { data?: { id?: number; name?: string; type?: 'private' | 'public' | 'personal'; pin?: string; locationId?: number; chargingZoneId?: number; electricityRateId?: number; subscription?: { required?: boolean; planIds?: number[] }; networkType?: 'cellular' | 'ethernet' | 'wlan'; status?: 'enabled' | 'disabled' | 'out of order' | 'demo'; managedByOperator?: boolean; externalId?: string; network?: { id?: string; protocol?: 'ocpp 1.5' | 'ocpp 1.6' | 'ocpp 1.6 soap' | 'ocpp 2.0.1'; password?: string; ip?: string; port?: number }; capabilities?: 'remote_start_stop_capable' | 'meter_values' | 'stop_transaction_on_ev_disconnect' | 'disregard_the_heartbeats' | 'display_messages'[]; autoStartWithoutAuthorization?: boolean; disableAutoStartEmulation?: boolean; security?: { desiredProfile?: number; currentProfile: number; hardwareEnabledProfile?: number; desiredProfileStatus?: 'applied' | 'pending' | 'rejected' }; modelId?: number; enableAutoFaultRecovery?: boolean; user?: { id?: number; automaticFirmwareUpdatesEnabled?: boolean }; partner?: { id?: number; contractId?: number; contactId?: number; corporateBillingAsDefault?: boolean; accessType?: 'private_view_private_use' | 'private_view_public_use' | 'public_view_private_use'; notice?: { locale?: string; translation?: string }[] }; utilityId?: number; createdAt?: string; firstContactAt?: string; roamingOperatorId?: number; chargingProfile?: { id?: number; minChargingRate?: number; schedulePeriods?: { startPeriod?: number; limit?: number; numberPhases?: number }[]; scheduleStart?: string; chargingRateUnit?: 'A' | 'W'; stackLevel?: number; chargingProfileKind?: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind?: 'daily' | 'weekly'; chargingCompleteAt?: string; purpose?: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo?: string; validFrom?: string; duration?: number }; displayTariffAndCosts?: boolean; lastBootNotification?: { model?: string; vendor?: string; chargeBoxSerialNumber?: string; chargePointSerialNumber?: string; firmwareVersion?: string; iccid?: string; imsi?: string; meterSerialNumber?: string; meterType?: string }; networkStatus?: 'never_connected' | 'available' | 'temporarily_unavailable' | 'long-term_unavailable'; hardwareStatus?: 'available' | 'unavailable' | 'faulted'; vendorErrorCode?: string; tags?: string[]; sharingCode?: string; enabledRandomisedDelay?: boolean; noticeId?: number; usesRenewableEnergy?: boolean; integratedAt?: string; manufacturedAt?: string; lastUpdatedAt?: string; ocppConnectedChargePointId?: number } & { communicationMode?: 'none' | 'direct_ocpp' | 'via_ocpp_connected_charge_point' | 'roaming' } };

export type ChargePointAvailablePersonalSmartChargingModesListingResponse = { data?: { name?: string; integrationId?: number; type?: 'user_controlled_schedule'; defaults?: { start_time?: string; end_time?: string } } | { name?: string; integrationId?: number; type?: 'octopus_agile'; defaults?: { max_price?: number; target_charge?: { departure_time?: string } } } | { name?: string; integrationId?: number; type?: 'octopus_go'; defaults?: { target_charge?: { departure_time?: string } } } | { name?: string; integrationId?: number; type?: 'energi_elspot'; defaults?: { target_charge?: { departure_time?: string } }; locations?: { key?: string; label?: string } } | { name?: string; integrationId?: number; type?: 'nordpool'; defaults?: { target_charge?: { departure_time?: string } }; locations?: { key?: string; label?: string } }[] };

export type ChargePointConfigurationsListingResponse = { data?: { key?: { name: string; value: string; componentName?: string; instance?: string; evseId?: number; maxLimit?: number }; readonly?: boolean; required?: boolean; timestamp?: string; lastUpdatedAt?: string; persistentConfigurationTemplateId?: number }[] };

export type ChargePointConfigurationReadResponse = { data?: { key?: { name: string; value: string; componentName?: string; instance?: string; evseId?: number; maxLimit?: number }; readonly?: boolean; required?: boolean; timestamp?: string; lastUpdatedAt?: string; persistentConfigurationTemplateId?: number } };

export type ChargePointConfigurationUpdateResponse = { data?: { key?: { name: string; value: string; componentName?: string; instance?: string; evseId?: number; maxLimit?: number }; readonly?: boolean; required?: boolean; timestamp?: string; lastUpdatedAt?: string; persistentConfigurationTemplateId?: number } };

export type ChargePointEvseCreateResponse = { data?: { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type ChargePointEvsesListingResponse = { data?: { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointEvseUpdateResponse = { data?: { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type ChargePointEvseReadResponse = { data?: { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type ChargePointEvseConnectorsListingResponse = { data?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[] };

export type ChargePointEvseConnectorCreateResponse = { data?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' } };

export type ChargePointEvseConnectorReadResponse = { data?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' } };

export type ChargePointEvseConnectorUpdateResponse = { data?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' } };

export type ListChargePointHardwareStatusLogsResponse = { data?: { status: string; timestamp: string; errorCode: string; vendorId?: string; info?: string; vendorErrorCode?: string; errorCodeDescription?: string; errorCodeCustomerAction?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type GetChargePointLatestHardwareStatusLogResponse = { data?: { status: string; timestamp: string; errorCode: string; vendorId?: string; info?: string; vendorErrorCode?: string; errorCodeDescription?: string; errorCodeCustomerAction?: string } };

export type GetChargePointLatestNetworkStatusLogResponse = { data?: { status: string; timestamp: string } };

export type ListChargePointNetworkStatusLogsResponse = { data?: { status: string; timestamp: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointPersonalSmartChargingPreferencesReadResponse = { data?: { enabled?: boolean; type: 'user_controlled_schedule'; preferences: { startTime: string; endTime: string; targetCharge?: { minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; trackElectricityCosts?: { priceOffPeak?: number; pricePeak?: number }; weekDays?: { days: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday'[]; startTime: string; endTime: string }[] } } | { enabled?: boolean; type: 'solar'; preferences: { maxCurrentFromGrid: number; solarStableTime: number } } | { enabled?: boolean; type: 'octopus_agile'; integrationId: number; preferences: { applicableTaxId: number; targetCharge?: { departureTime?: string; preconditioningTime?: number; minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; postCode: string; priceThreshold: number } } | { enabled?: boolean; type: 'octopus_go'; integrationId: number; preferences: { applicableTaxId: number; targetCharge?: { departureTime?: string; preconditioningTime?: number; minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; postCode: string; priceThreshold?: number } } | { enabled?: boolean; type: 'energi_elspot'; integrationId?: number; preferences?: { location: 'GB1'; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number } } } | { enabled?: boolean; type: 'nordpool'; integrationId?: number; preferences?: { location: 'GB1'; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number } } } | { enabled?: boolean; type: 'charger_electricity_rate'; electricityRateId: number; preferences: { solar?: boolean; startTime: string; endTime: string; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number }; weekDays?: { days: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday'[]; startTime: string; endTime: string }[] } } };

export type PersonalSmartChargingPreferencesUpdateResponse = { data?: { enabled?: boolean; type: 'user_controlled_schedule'; preferences: { startTime: string; endTime: string; targetCharge?: { minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; trackElectricityCosts?: { priceOffPeak?: number; pricePeak?: number }; weekDays?: { days: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday'[]; startTime: string; endTime: string }[] } } | { enabled?: boolean; type: 'solar'; preferences: { maxCurrentFromGrid: number; solarStableTime: number } } | { enabled?: boolean; type: 'octopus_agile'; integrationId: number; preferences: { applicableTaxId: number; targetCharge?: { departureTime?: string; preconditioningTime?: number; minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; postCode: string; priceThreshold: number } } | { enabled?: boolean; type: 'octopus_go'; integrationId: number; preferences: { applicableTaxId: number; targetCharge?: { departureTime?: string; preconditioningTime?: number; minTargetChargeKwh?: number; maxTargetChargeKwh?: number }; postCode: string; priceThreshold?: number } } | { enabled?: boolean; type: 'energi_elspot'; integrationId?: number; preferences?: { location: 'GB1'; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number } } } | { enabled?: boolean; type: 'nordpool'; integrationId?: number; preferences?: { location: 'GB1'; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number } } } | { enabled?: boolean; type: 'charger_electricity_rate'; electricityRateId: number; preferences: { solar?: boolean; startTime: string; endTime: string; targetCharge: { departureTime: string; preconditioningTime?: number; targetChargeKwh: number }; weekDays?: { days: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday'[]; startTime: string; endTime: string }[] } } | { enabled: boolean } };

export type ChargePointSharedPartnersListingResponse = { data?: { id: number; sharedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointShareCreateResponse = { data?: { id: number; userId: number; sharedOn: string } };

export type ChargePointSharesListingResponse = { data?: { id: number; userId: number; sharedOn: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ChargePointShareReadResponse = { data?: { id: number; userId: number; sharedOn: string } };

export type ChargePointSmartChargingUpdateResponse = { data?: { mode: 'tod'; defaultChargePointMaxCurrent: number; circuitId?: number; periods?: { weekDay: 'all' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'; elements: { startAt: string; endAt: string; maxCurrent?: number }[] }[]; preconditioningTime?: number; minCurrent?: number; enableKeepAwake?: boolean; maxVoltage: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; electricalConfiguration?: 'star' | 'delta'; phases: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' } | { mode: 'dynamic'; defaultChargePointMaxCurrent: number; preconditioningTime?: number; circuitId?: number; minCurrent?: number; enableKeepAwake?: boolean; maxVoltage: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; electricalConfiguration?: 'star' | 'delta'; phases: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' } | { mode: 'user_schedule'; defaultChargePointMaxCurrent: number; preconditioningTime?: number; circuitId?: number; minCurrent: number; enableKeepAwake: boolean; maxVoltage: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; electricalConfiguration?: 'star' | 'delta'; phases: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; allowDynamicLoadManagement?: boolean; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' } | { mode: 'disabled'; preconditioningTime?: number } };

export type CircuitsListingResponse = { data?: { id?: number; name?: string; parentCircuitId?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3'; electricalConfiguration?: 'star' | 'delta'; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxCurrent?: number; minChargePointCurrent?: number; setSessionLimitToZeroOnIdle?: boolean; electricityMeterId?: number; offlineReservedCurrent?: number; loadBalancingIntegration?: { id?: number; fields?: { startDate?: string } | { installationId: string } } } & { chargePointPriorities?: { id?: number; priority?: number; evses?: { id?: number; priority?: number }[] }[]; userPriorities?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number }[]; socPriorities?: { upperThresholdPercent?: number; highSoCPriority?: number; lowerThresholdPercent?: number; lowSoCPriority?: number }; consumption?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[]; unmanagedLoad?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CircuitCreateResponse = { data?: { id?: number; name?: string; parentCircuitId?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3'; electricalConfiguration?: 'star' | 'delta'; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxCurrent?: number; minChargePointCurrent?: number; setSessionLimitToZeroOnIdle?: boolean; electricityMeterId?: number; offlineReservedCurrent?: number; loadBalancingIntegration?: { id?: number; fields?: { startDate?: string } | { installationId: string } } } };

export type CircuitReadResponse = { data?: { id?: number; name?: string; parentCircuitId?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3'; electricalConfiguration?: 'star' | 'delta'; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxCurrent?: number; minChargePointCurrent?: number; setSessionLimitToZeroOnIdle?: boolean; electricityMeterId?: number; offlineReservedCurrent?: number; loadBalancingIntegration?: { id?: number; fields?: { startDate?: string } | { installationId: string } } } & { chargePointPriorities?: { id?: number; priority?: number; evses?: { id?: number; priority?: number }[] }[]; userPriorities?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number }[]; socPriorities?: { upperThresholdPercent?: number; highSoCPriority?: number; lowerThresholdPercent?: number; lowSoCPriority?: number }; consumption?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[]; unmanagedLoad?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[] } };

export type CircuitUpdateResponse = { data?: { id?: number; name?: string; parentCircuitId?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3'; electricalConfiguration?: 'star' | 'delta'; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxCurrent?: number; minChargePointCurrent?: number; setSessionLimitToZeroOnIdle?: boolean; electricityMeterId?: number; offlineReservedCurrent?: number; loadBalancingIntegration?: { id?: number; fields?: { startDate?: string } | { installationId: string } } } };

export type CircuitChargePointPrioritiesListingResponse = { data?: { id?: number; priority?: number; evses?: { id?: number; priority?: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CircuitConsumptionResponse = { data?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[] };

export type CircuitSocPrioritiesListingResponse = { upperThresholdPercent?: number; highSoCPriority?: number; lowerThresholdPercent?: number; lowSoCPriority?: number };

export type CircuitUnmanagedLoadReadResponse = { data?: { phase: 'L1' | 'L2' | 'L3'; consumption?: number; lastUpdatedAt?: string }[] };

export type CircuitUserPrioritiesListingResponse = { data?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CircuitUserPriorityCreateResponse = { data?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number } };

export type CircuitUserPriorityReadResponse = { data?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number } };

export type CircuitUserPriorityUpdateResponse = { data?: { id?: number; targetId?: number; type?: 'partner' | 'userGroup'; priority?: number } };

export type ListConfigurationTemplatesResponse = { data?: { id?: number; name?: string; ocppVersion?: 'ocpp 1.6' | 'ocpp 2.0.1'; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CreateConfigurationTemplateResponse = { data?: { id?: number; name?: string; ocppVersion?: 'ocpp 1.6' | 'ocpp 2.0.1'; lastUpdatedAt?: string } };

export type UpdateConfigurationTemplateResponse = { data?: { id?: number; name?: string; ocppVersion?: 'ocpp 1.6' | 'ocpp 2.0.1'; lastUpdatedAt?: string } };

export type GetConfigurationTemplateResponse = { data?: { id?: number; name?: string; ocppVersion?: 'ocpp 1.6' | 'ocpp 2.0.1'; lastUpdatedAt?: string } };

export type ConfigurationTemplateVariableListingResponse = { data?: { id: number; keyName: string; value: string; lastUpdatedAt: string } | { id: number; value: string; variableName: string; variableType: 'Actual' | 'Target' | 'MinSet' | 'MaxSet'; variableInstance: string; component: string; componentInstance: string; evseId: number; connectorId: number; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ConfigurationTemplateVariableCreateResponse = { data?: { id: number; keyName: string; value: string; lastUpdatedAt: string } | { id: number; value: string; variableName: string; variableType: 'Actual' | 'Target' | 'MinSet' | 'MaxSet'; variableInstance: string; component: string; componentInstance: string; evseId: number; connectorId: number; lastUpdatedAt: string } };

export type ConfigurationTemplateVariableUpdateResponse = { data?: { id: number; keyName: string; value: string; lastUpdatedAt: string } | { id: number; value: string; variableName: string; variableType: 'Actual' | 'Target' | 'MinSet' | 'MaxSet'; variableInstance: string; component: string; componentInstance: string; evseId: number; connectorId: number; lastUpdatedAt: string } };

export type ContactDetailsReadResponse = { email: string; phone?: string; lastUpdatedAt?: string };

export type ContactDetailsUpdateResponse = { email: string; phone?: string; lastUpdatedAt?: string };

export type CurrenciesListingResponse = { data?: { id?: number; name?: string; alphabeticCode: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; numericCode?: string; prefix?: string; suffix?: string; decimal?: number; unitPriceAndCalculationsDecimal?: number; enableUseOfMinorCurrencyUnit?: boolean; minorUnitSign?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CurrencyCreateResponse = { id?: number; name?: string; alphabeticCode: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; numericCode?: string; prefix?: string; suffix?: string; decimal?: number; unitPriceAndCalculationsDecimal?: number; enableUseOfMinorCurrencyUnit?: boolean; minorUnitSign?: string };

export type CurrencyReadResponse = { id?: number; name?: string; alphabeticCode: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; numericCode?: string; prefix?: string; suffix?: string; decimal?: number; unitPriceAndCalculationsDecimal?: number; enableUseOfMinorCurrencyUnit?: boolean; minorUnitSign?: string };

export type CurrencyUpdateResponse = { id?: number; name?: string; alphabeticCode: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; numericCode?: string; prefix?: string; suffix?: string; decimal?: number; unitPriceAndCalculationsDecimal?: number; enableUseOfMinorCurrencyUnit?: boolean; minorUnitSign?: string };

export type CreateCurrencyRateResponse = { data?: { id: number; base: string; target: string; rate: number; updatedAt: string } };

export type ListCurrencyRatesResponse = { data?: { id: number; base: string; target: string; rate: number; updatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UpdateCurrencyRateResponse = { data?: { id: number; base: string; target: string; rate: number; updatedAt: string } };

export type GetCurrencyRateResponse = { data?: { id: number; base: string; target: string; rate: number; updatedAt: string } };

export type CustomFeesListingResponse = { data?: { id: number; createdAt: string; transactionId: number; createdByAdminId?: number; amount: number; currency: string; bankMessage: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CustomFeeReadResponse = { data?: { id: number; createdAt: string; transactionId: number; createdByAdminId?: number; amount: number; currency: string; bankMessage: string; lastUpdatedAt: string } };

export type GetDowntimePeriodNoticesResponse = { data?: { id: number; type: 'downtime' | 'exempt'; notice: string; description?: string; createdAt: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PostDowntimePeriodNoticeResponse = { data?: { id: number; type: 'downtime' | 'exempt'; notice: string; description?: string; createdAt: string; lastUpdatedAt: string } };

export type GetDowntimePeriodNoticeResponse = { data?: { id: number; type: 'downtime' | 'exempt'; notice: string; description?: string; createdAt: string; lastUpdatedAt: string } };

export type PatchDowntimePeriodNoticeResponse = { data?: { id: number; type: 'downtime' | 'exempt'; notice: string; description?: string; createdAt: string; lastUpdatedAt: string } };

export type ElectricityMetersLisingResponse = { data?: { id?: number } & { name?: string; integrationId?: number; integrationParameters?: Record<string, string> }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityMeterCreateResponse = { data?: { id?: number } & { name?: string; integrationId?: number; integrationParameters?: Record<string, string> } };

export type ElectricityMeterReadResponse = { data?: { id?: number } & { name?: string; integrationId?: number; integrationParameters?: Record<string, string> } };

export type ElectricityMeterUpdateResponse = { data?: { id?: number } & { name?: string; integrationId?: number; integrationParameters?: Record<string, string> } };

export type ElectricityRatesListingResponse = { data?: { id?: number; name?: string; utilityId?: number; defaultPrice?: number; taxPercentage?: number } & { type?: 'admin_defined' | 'octopus_go' | 'agile_octopus' | 'elspot' | 'nord_pool' }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRateCreateResponse = { data?: { id?: number; name?: string; utilityId?: number; defaultPrice?: number; taxPercentage?: number } & { type?: 'admin_defined' | 'octopus_go' | 'agile_octopus' | 'elspot' | 'nord_pool' } };

export type ElectricityRateReadResponse = { data?: { id?: number; name?: string; utilityId?: number; defaultPrice?: number; taxPercentage?: number } & { type?: 'admin_defined' | 'octopus_go' | 'agile_octopus' | 'elspot' | 'nord_pool' } };

export type ElectricityRateUpdateResponse = { data?: { id?: number; name?: string; utilityId?: number; defaultPrice?: number; taxPercentage?: number } & { type?: 'admin_defined' | 'octopus_go' | 'agile_octopus' | 'elspot' | 'nord_pool' } };

export type ElectricityRateEnergyMixReadResponse = { data?: { solar?: number; wind?: number; hydro?: number; nuclear?: number; coal?: number; naturalGas?: number; otherRenewable?: number; otherNonRenewable?: number } };

export type ElectricityRateEnergyMixUpdateResponse = { data?: { solar?: number; wind?: number; hydro?: number; nuclear?: number; coal?: number; naturalGas?: number; otherRenewable?: number; otherNonRenewable?: number } };

export type ElectricityRatePricePeriodsListingResponse = { data?: { weekDay: 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun' | 'any'; periods: { startsAt: string; endsAt: string; price: number }[] } | { date: string; periods: { startsAt: string; endsAt: string; price: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsDateListingResponse = { data?: { date: string; periods: { startsAt: string; endsAt: string; price: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsDateReadResponse = { data?: { date: string; periods: { startsAt: string; endsAt: string; price: number }[] }; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsDateCreateOrUpdateResponse = { data?: { date: string; periods: { startsAt: string; endsAt: string; price: number }[] }; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsWeekDayListingResponse = { data?: { weekDay: 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun' | 'any'; periods: { startsAt: string; endsAt: string; price: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsWeekDayReadResponse = { data?: { weekDay: 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun' | 'any'; periods: { startsAt: string; endsAt: string; price: number }[] }; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ElectricityRatePricePeriodsWeekDayCreateaOrUpdateResponse = { data?: { weekDay: 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun' | 'any'; periods: { startsAt: string; endsAt: string; price: number }[] }; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type EvseDowntimePeriodsListingResponse = { data?: { evseId: number; chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type EvseDowntimePeriodCreateResponse = { data?: { evseId: number; chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type EvseDowntimePeriodReadResponse = { data?: { evseId: number; chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type EvseDowntimePeriodUpdateResponse = { data?: { evseId: number; chargePointId: number; startedAt: string; endedAt: string; id: number; locationId: number; entryMode: 'manual' | 'automatic'; noticeId?: number; type: 'downtime' | 'exempt'; statuses: { system: 'enabled' | 'disabled' | 'out of order' | 'demo'; network: 'never connected' | 'available' | 'temporarily unavailable' | 'long-term unavailable'; hardware: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' } } };

export type ListEvseHardwareStatusLogsResponse = { data?: { status: string; timestamp: string; errorCode: string; vendorId?: string; info?: string; vendorErrorCode?: string; errorCodeDescription?: string; errorCodeCustomerAction?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type GetEvseLatestHardwareStatusLogResponse = { data?: { status: string; timestamp: string; errorCode: string; vendorId?: string; info?: string; vendorErrorCode?: string; errorCodeDescription?: string; errorCodeCustomerAction?: string } };

export type EvseCreateResponse = { data?: { chargePointId: number } & { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type EvsesListingResponse = { data?: { chargePointId: number } & { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type EvseUpdateResponse = { data?: { chargePointId: number } & { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type EvseReadResponse = { data?: { chargePointId: number } & { id: number; physicalReference: string; label?: string; currentType: 'ac' | 'dc'; networkId: string; status: 'enabled' | 'disabled' | 'out of order'; midMeterCertificationEndYear?: number; tariffGroupId?: number; allowsReservation?: boolean; bookingEnabled?: boolean; powerOptions?: { maxPower?: number; maxVoltage?: '230' | '380' | '400' | '480' | '120' | '208' | '240' | '110-130' | '220-240'; maxAmperage?: number; phases?: 'single_phase' | 'three_phase' | 'split_phase'; phaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; connectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3' }; externalId?: string; roamingOperatorId: number; roaming?: { evseId: string; tariffIds: string[]; capabilities: string[]; physicalReference: string; status: 'available' | 'blocked' | 'charging' | 'inoperative' | 'outoforder' | 'planned' | 'removed' | 'reserved' | 'unknown' }; hardwareStatus: 'available' | 'preparing' | 'charging' | 'suspendedEV' | 'suspendedEVSE' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'occupied'; chargingProfile?: { id: number; minChargingRate: number; schedulePeriods: { startPeriod: number; limit: number; numberPhases?: number }[]; scheduleStart: string; chargingRateUnit: 'A' | 'W'; stackLevel: number; chargingProfileKind: 'Absolute' | 'Recurring' | 'Relative'; recurrencyKind: 'Daily' | 'Weekly'; chargingCompleteAt: string; purpose: 'ChargePointMaxProfile' | 'TxDefaultProfile' | 'TxProfile'; validTo: string; validFrom: string; duration: number }; connectors?: { id: number; type: 'type1' | 'type2' | 'type3' | 'chademo' | 'ccs1' | 'ccs2' | 'schuko' | 'nacs' | 'cee16' | 'cee32' | 'j1772' | 'inductive' | 'nema-5-20' | 'type-e-french' | 'type-g-british' | 'type-j-swiss' | 'avcon' | 'gb-t-ac' | 'gb-t-dc' | 'chaoji' | 'nema-6-30' | 'nema-6-50'; format?: 'socket' | 'cable'; status?: 'enabled' | 'disabled' }[]; externalAppData?: Record<string, unknown>; createdAt: string; lastUpdatedAt: string } };

export type FaqsListingResponse = { data?: { id: number; question: { locale?: string; translation?: string }[]; answer: { locale?: string; translation?: string }[]; lastUpdatedAt: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type FaqCreateResponse = { data?: { id: number; question: { locale?: string; translation?: string }[]; answer: { locale?: string; translation?: string }[]; lastUpdatedAt: string } };

export type FaqReadResponse = { data?: { id: number; question: { locale?: string; translation?: string }[]; answer: { locale?: string; translation?: string }[]; lastUpdatedAt: string } };

export type FaqUpdateResponse = { data?: { id: number; question: { locale?: string; translation?: string }[]; answer: { locale?: string; translation?: string }[]; lastUpdatedAt: string } };

export type FirmwareVersionsListingResponse = { data?: { id: number; firmwareVersion: string; details?: string; chargePointVendorId: number; fileUrl?: string; signingCertificate?: string; signature?: string; models?: number[]; createdAt: string; updatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type FirmwareVersionReadResponse = { data?: { id: number; firmwareVersion: string; details?: string; chargePointVendorId: number; fileUrl?: string; signingCertificate?: string; signature?: string; models?: number[]; createdAt: string; updatedAt: string } };

export type FirmwareVersionAttachedModelsResponse = { data?: number[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ListFlexibilityActivationRequestsResponse = { data?: { id: number; timestamp: string; assetId: number; periods: { startTime?: string; endTime?: string } & { energy?: number; maxPower?: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type GetFlexibilityActivationRequestResponse = { data?: { id: number; timestamp: string; assetId: number; periods: { startTime?: string; endTime?: string } & { energy?: number; maxPower?: number }[] } };

export type CreateFlexibilityAssetResponse = { data?: { id?: number } & { dlmCircuitId?: number; chargePointId?: number; evseId?: number } & { description?: string; downwardRegulationLimit?: number; upwardRegulationLimit?: number; integrationId?: number; integrationParameters?: Record<string, string> } & { status?: 'enabled' | 'disabled'; endsAt?: string } };

export type ListFlexibilityAssetsResponse = { data?: { id?: number } & { dlmCircuitId?: number; chargePointId?: number; evseId?: number } & { description?: string; downwardRegulationLimit?: number; upwardRegulationLimit?: number; integrationId?: number; integrationParameters?: Record<string, string> } & { status?: 'enabled' | 'disabled'; endsAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UpdateFlexibilityAssetResponse = { data?: { id?: number } & { dlmCircuitId?: number; chargePointId?: number; evseId?: number } & { description?: string; downwardRegulationLimit?: number; upwardRegulationLimit?: number; integrationId?: number; integrationParameters?: Record<string, string> } & { status?: 'enabled' | 'disabled'; endsAt?: string } };

export type GetFlexibilityAssetResponse = { data?: { id?: number } & { dlmCircuitId?: number; chargePointId?: number; evseId?: number } & { description?: string; downwardRegulationLimit?: number; upwardRegulationLimit?: number; integrationId?: number; integrationParameters?: Record<string, string> } & { status?: 'enabled' | 'disabled'; endsAt?: string } };

export type GetHistoricalTimeSeriesResponse = { data?: { id?: number; assetId: number; startTime: string; endTime: string; energy: number }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type GetTimeSeriesForecastResponse = { data?: { id?: number; assetId: number; startTime: string; endTime: string; energy: number; downwardRegulationPotential: number; upwardRegulationPotential: number }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type IdTagsListingResponse = { data?: { id?: number; idTagUid?: string; idLabel?: string; expireAt?: string; createdAt?: string; status?: 'enabled' | 'disabled' | 'suspended'; type?: 'rfid' | 'mac_address' | 'emaid'; vehicleType?: 'null' | 'company_car' | 'private_car'; paymentMethodId?: string; userId?: number; externalId?: string; partnerId?: number; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type IdTagCreateResponse = { data?: { id?: number; idTagUid?: string; idLabel?: string; expireAt?: string; createdAt?: string; status?: 'enabled' | 'disabled' | 'suspended'; type?: 'rfid' | 'mac_address'; vehicleType?: 'null' | 'company_car' | 'private_car'; paymentMethodId?: string; userId?: number; externalId?: string; partnerId?: number; lastUpdatedAt?: string } };

export type IdTagReadResponse = { data?: { id?: number; idTagUid?: string; idLabel?: string; expireAt?: string; createdAt?: string; status?: 'enabled' | 'disabled' | 'suspended'; type?: 'rfid' | 'mac_address' | 'emaid'; vehicleType?: 'null' | 'company_car' | 'private_car'; paymentMethodId?: string; userId?: number; externalId?: string; partnerId?: number; lastUpdatedAt?: string } };

export type IdTagUpdateResponse = { data?: { id?: number; idTagUid?: string; idLabel?: string; expireAt?: string; createdAt?: string; status?: 'enabled' | 'disabled' | 'suspended'; type?: 'rfid' | 'mac_address'; vehicleType?: 'null' | 'company_car' | 'private_car'; paymentMethodId?: string; userId?: number; externalId?: string; partnerId?: number; lastUpdatedAt?: string } };

export type GetInstallerJobsListResponse = { data?: { id: number; status: 'new' | 'in_progress' | 'completed' | 'failed'; installationAndMaintenanceCompanyId: number; locationId?: number; installerAdminId?: number; pin?: string; description: string; outcomeDetails?: string; createdAt: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CreateInstallerJobResponse = { data?: { id: number; status: 'new' | 'in_progress' | 'completed' | 'failed'; installationAndMaintenanceCompanyId: number; locationId?: number; installerAdminId?: number; pin?: string; description: string; outcomeDetails?: string; createdAt: string; lastUpdatedAt: string } };

export type GetInstallerJobResponse = { data?: { id: number; status: 'new' | 'in_progress' | 'completed' | 'failed'; installationAndMaintenanceCompanyId: number; locationId?: number; installerAdminId?: number; pin?: string; description: string; outcomeDetails?: string; createdAt: string; lastUpdatedAt: string } & { chargePoints?: { id?: number }[] } };

export type UpdateInstallerJobResponse = { data?: { id: number; status: 'new' | 'in_progress' | 'completed' | 'failed'; installationAndMaintenanceCompanyId: number; locationId?: number; installerAdminId?: number; pin?: string; description: string; outcomeDetails?: string; createdAt: string; lastUpdatedAt: string } };

export type InvoicesListingResponse = { data?: { id: number; type: 'invoice' | 'pro_forma' | 'credit_note'; number: string; date: string; userId?: number; periodFrom?: string; periodTo?: string; totalEnergy?: number; totalAmount: number; taxRate: number; taxAmount: number; service: string; quantity: number; unitPrice: number; subtotal: number; downloadUrl?: string; client?: { type: 'individual' | 'company'; name: string; email?: string | string; id?: string; taxId?: string; taxAdministrationOfficeName?: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; city?: string; post_code?: string; address?: string }; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type InvoiceReadResponse = { data?: { id: number; type: 'invoice' | 'pro_forma' | 'credit_note'; number: string; date: string; userId?: number; periodFrom?: string; periodTo?: string; totalEnergy?: number; totalAmount: number; taxRate: number; taxAmount: number; service: string; quantity: number; unitPrice: number; subtotal: number; downloadUrl?: string; client?: { type: 'individual' | 'company'; name: string; email?: string | string; id?: string; taxId?: string; taxAdministrationOfficeName?: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; city?: string; post_code?: string; address?: string }; lastUpdatedAt?: string } };

export type LocationCreateResponse = { data?: { id?: number; name?: { locale?: string; translation?: string }[]; shortDescription?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[]; additionalDescription?: { locale?: string; translation?: string }[]; locationImage?: { original: string; thumbnail?: string; mimeType: string }; images?: { original: string; thumbnail?: string; mimeType: string }[]; geoposition?: { latitude: number; longitude: number }; address?: { locale?: string; translation?: string }[]; streetAddress?: { locale?: string; translation?: string }[]; city?: string; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; postCode?: string; workingHours?: { isAlwaysOpen?: boolean; stopSessionOutsideWorkingHours?: boolean; alwaysOpenForUserGroupIds?: number[]; hours?: { monday?: { start: string; end: string }[]; tuesday?: { start: string; end: string }[]; wednesday?: { start: string; end: string }[]; thursday?: { start: string; end: string }[]; friday?: { start: string; end: string }[]; saturday?: { start: string; end: string }[]; sunday?: { start: string; end: string }[] } }; timezone?: string; externalId?: string; roamingOperatorId?: number; lastUpdatedAt?: string; chargingZones?: { id?: number; name?: string; locationId?: number; status?: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } }[]; externalAppData?: Record<string, unknown>; roaming?: { owner?: { name?: string }; operator?: { name?: string }; suboperator?: { name?: string } }; tags?: string[] } & { status?: 'enabled' | 'disabled' } };

export type LocationsListingResponse = { data?: { id?: number; name?: { locale?: string; translation?: string }[]; shortDescription?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[]; additionalDescription?: { locale?: string; translation?: string }[]; locationImage?: { original: string; thumbnail?: string; mimeType: string }; images?: { original: string; thumbnail?: string; mimeType: string }[]; geoposition?: { latitude: number; longitude: number }; address?: { locale?: string; translation?: string }[]; streetAddress?: { locale?: string; translation?: string }[]; city?: string; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; postCode?: string; workingHours?: { isAlwaysOpen?: boolean; stopSessionOutsideWorkingHours?: boolean; alwaysOpenForUserGroupIds?: number[]; hours?: { monday?: { start: string; end: string }[]; tuesday?: { start: string; end: string }[]; wednesday?: { start: string; end: string }[]; thursday?: { start: string; end: string }[]; friday?: { start: string; end: string }[]; saturday?: { start: string; end: string }[]; sunday?: { start: string; end: string }[] } }; timezone?: string; externalId?: string; roamingOperatorId?: number; lastUpdatedAt?: string; chargingZones?: { id?: number; name?: string; locationId?: number; status?: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } }[]; externalAppData?: Record<string, unknown>; roaming?: { owner?: { name?: string }; operator?: { name?: string }; suboperator?: { name?: string } }; tags?: string[] } & { status?: 'enabled' | 'disabled' }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type LocationUpdateResponse = { data?: { id?: number; name?: { locale?: string; translation?: string }[]; shortDescription?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[]; additionalDescription?: { locale?: string; translation?: string }[]; locationImage?: { original: string; thumbnail?: string; mimeType: string }; images?: { original: string; thumbnail?: string; mimeType: string }[]; geoposition?: { latitude: number; longitude: number }; address?: { locale?: string; translation?: string }[]; streetAddress?: { locale?: string; translation?: string }[]; city?: string; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; postCode?: string; workingHours?: { isAlwaysOpen?: boolean; stopSessionOutsideWorkingHours?: boolean; alwaysOpenForUserGroupIds?: number[]; hours?: { monday?: { start: string; end: string }[]; tuesday?: { start: string; end: string }[]; wednesday?: { start: string; end: string }[]; thursday?: { start: string; end: string }[]; friday?: { start: string; end: string }[]; saturday?: { start: string; end: string }[]; sunday?: { start: string; end: string }[] } }; timezone?: string; externalId?: string; roamingOperatorId?: number; lastUpdatedAt?: string; chargingZones?: { id?: number; name?: string; locationId?: number; status?: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } }[]; externalAppData?: Record<string, unknown>; roaming?: { owner?: { name?: string }; operator?: { name?: string }; suboperator?: { name?: string } }; tags?: string[] } & { status?: 'enabled' | 'disabled' } };

export type LocationReadResponse = { data?: { id?: number; name?: { locale?: string; translation?: string }[]; shortDescription?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[]; additionalDescription?: { locale?: string; translation?: string }[]; locationImage?: { original: string; thumbnail?: string; mimeType: string }; images?: { original: string; thumbnail?: string; mimeType: string }[]; geoposition?: { latitude: number; longitude: number }; address?: { locale?: string; translation?: string }[]; streetAddress?: { locale?: string; translation?: string }[]; city?: string; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; postCode?: string; workingHours?: { isAlwaysOpen?: boolean; stopSessionOutsideWorkingHours?: boolean; alwaysOpenForUserGroupIds?: number[]; hours?: { monday?: { start: string; end: string }[]; tuesday?: { start: string; end: string }[]; wednesday?: { start: string; end: string }[]; thursday?: { start: string; end: string }[]; friday?: { start: string; end: string }[]; saturday?: { start: string; end: string }[]; sunday?: { start: string; end: string }[] } }; timezone?: string; externalId?: string; roamingOperatorId?: number; lastUpdatedAt?: string; chargingZones?: { id?: number; name?: string; locationId?: number; status?: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } }[]; externalAppData?: Record<string, unknown>; roaming?: { owner?: { name?: string }; operator?: { name?: string }; suboperator?: { name?: string } }; tags?: string[] } & { status?: 'enabled' | 'disabled' } };

export type LocationChargingZonesListingResponse = { data?: { id?: number; name: string; locationId?: number; status: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type LocationChargingZoneCreateResponse = { data?: { id?: number; name: string; locationId?: number; status: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } } };

export type LocationChargingZoneReadResponse = { data?: { id?: number; name: string; locationId?: number; status: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } } };

export type LocationChargingZoneUpdateResponse = { data?: { id?: number; name: string; locationId?: number; status: 'enabled' | 'disabled'; additionalInfo?: { enabled?: boolean; title?: { locale?: string; translation?: string }[]; description?: { locale?: string; translation?: string }[] } } };

export type CreateParkingSpaceResponse = { data?: { id: number; label: string; locationId: number; externalId?: string; status: 'enabled' | 'disabled'; occupancyStatus: 'unknown' | 'available' | 'occupied'; disabilitiesAccessible: boolean; evses?: number[] } };

export type ListParkingSpaceResponse = { data?: { id: number; label: string; locationId: number; externalId?: string; status: 'enabled' | 'disabled'; occupancyStatus: 'unknown' | 'available' | 'occupied'; disabilitiesAccessible: boolean; evses?: number[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UpdateParkingSpaceResponse = { data?: { id: number; label: string; locationId: number; externalId?: string; status: 'enabled' | 'disabled'; occupancyStatus: 'unknown' | 'available' | 'occupied'; disabilitiesAccessible: boolean; evses?: number[] } };

export type GetParkingSpaceResponse = { data?: { id: number; label: string; locationId: number; externalId?: string; status: 'enabled' | 'disabled'; occupancyStatus: 'unknown' | 'available' | 'occupied'; disabilitiesAccessible: boolean; evses?: number[] } };

export type PartnerContractsListingResponse = { data?: { id?: number; title: string; partnerId: number; startDate: string; endDate?: string; autoRenewal?: boolean; accessAndPermissions?: { sessionsRemoteControl?: boolean; startReservation?: boolean; stopReservation?: boolean; resetChargePoint?: boolean; firmwareUpdate?: boolean }; revenueSharing?: { partnerSharePercentageAcEvse?: number; partnerSharePercentageDcEvse?: number; excludeConnectionFee?: boolean; deductElectricityCost?: boolean; reimburseForElectricityCost?: boolean; fixedFeePerSessionAc?: number; fixedFeePerSessionDc?: number; feePerKwhAc?: number; feePerKwhDc?: number; handlingFee?: number }; monthlyPlatformFees?: { perChargePoint?: number; perAcEvse?: number; perDcEvse?: number }; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerContractCreateResponse = { data?: { id?: number; title: string; partnerId: number; startDate: string; endDate?: string; autoRenewal?: boolean; accessAndPermissions?: { sessionsRemoteControl?: boolean; startReservation?: boolean; stopReservation?: boolean; resetChargePoint?: boolean; firmwareUpdate?: boolean }; revenueSharing?: { partnerSharePercentageAcEvse?: number; partnerSharePercentageDcEvse?: number; excludeConnectionFee?: boolean; deductElectricityCost?: boolean; reimburseForElectricityCost?: boolean; fixedFeePerSessionAc?: number; fixedFeePerSessionDc?: number; feePerKwhAc?: number; feePerKwhDc?: number; handlingFee?: number }; monthlyPlatformFees?: { perChargePoint?: number; perAcEvse?: number; perDcEvse?: number }; lastUpdatedAt?: string } };

export type PartnerContractReadResponse = { data?: { id?: number; title: string; partnerId: number; startDate: string; endDate?: string; autoRenewal?: boolean; accessAndPermissions?: { sessionsRemoteControl?: boolean; startReservation?: boolean; stopReservation?: boolean; resetChargePoint?: boolean; firmwareUpdate?: boolean }; revenueSharing?: { partnerSharePercentageAcEvse?: number; partnerSharePercentageDcEvse?: number; excludeConnectionFee?: boolean; deductElectricityCost?: boolean; reimburseForElectricityCost?: boolean; fixedFeePerSessionAc?: number; fixedFeePerSessionDc?: number; feePerKwhAc?: number; feePerKwhDc?: number; handlingFee?: number }; monthlyPlatformFees?: { perChargePoint?: number; perAcEvse?: number; perDcEvse?: number }; lastUpdatedAt?: string } };

export type PartnerContractUpdateResponse = { data?: { id?: number; title: string; partnerId: number; startDate: string; endDate?: string; autoRenewal?: boolean; accessAndPermissions?: { sessionsRemoteControl?: boolean; startReservation?: boolean; stopReservation?: boolean; resetChargePoint?: boolean; firmwareUpdate?: boolean }; revenueSharing?: { partnerSharePercentageAcEvse?: number; partnerSharePercentageDcEvse?: number; excludeConnectionFee?: boolean; deductElectricityCost?: boolean; reimburseForElectricityCost?: boolean; fixedFeePerSessionAc?: number; fixedFeePerSessionDc?: number; feePerKwhAc?: number; feePerKwhDc?: number; handlingFee?: number }; monthlyPlatformFees?: { perChargePoint?: number; perAcEvse?: number; perDcEvse?: number }; lastUpdatedAt?: string } };

export type ExpensesListingResponse = { data?: { id: number; partnerId: number; partnerName: string; date: string; origin: 'platform-fee-emsp' | 'platform-fee-cpo' | 'user-custom-fee' | 'session-emsp'; period?: string; totalAmount: { withoutTax: number }; currencyCode: string; settlementReportId: number; chargingSessionId?: number; startedAt?: string; duration?: string; chargePointName?: string; authorization?: string; operatorDiscountPercentage?: number; operatorDiscountAmount?: number; breakdown?: { partnerContractId: number; numberOfChargePoints: number; totalPlatformFeeChargePoints: number; numberOfAcEvses: number; totalPlatformFeeAcEvses: number; numberOfDcEvses: number; totalPlatformFeeDcEvses: number }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerInvitesListingResponse = { data?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type PartnerInviteCreateResponse = { data?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string } };

export type PartnerInviteReadResponse = { data?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string } };

export type PartnerInviteUpdateResponse = { data?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string } };

export type RevenuesListingResponse = { data?: { id: number; partnerId: number; partnerName: string; date: string; origin: 'electricity-tax-reimbursement' | 'session-cpo'; totalAmount: { withoutTax: number }; operatorShare: number; partnerShare: number; currencyCode: string; settlementReportId: number; chargingSessionId?: number; startedAt?: string; duration?: string; chargePointName?: string; authorization?: string; electricityCost?: number; remainingRevenue?: number; collectedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerSettlementReportsListingResponse = { data: { id: number; partnerId: number; number: string; date: string; periodStart: string; periodEnd: string; currencyCode: string; totalAmount: { withoutTax: number }; totalExpenses: number; totalRevenue: number; totalAwaitedRevenue: number; totalCollectedRevenue: number; totalCollectedRevenueFromPreviousPeriod: number; totalEnergyCpoWh: number; totalEnergyEmspWh: number; supplier: { type: 'individual' | 'company'; name: string; contactPerson: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region: string; city: string; postCode: string; address: string; regNo: string; taxId: string; phone: string; email: string }; customer: { type: 'individual' | 'company'; name: string; contactPerson: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region: string; city: string; postCode: string; address: string; regNo: string; taxId: string; phone: string; email: string } & { bankIban: string; bankName: string; bankAddress: string; bankCode: string; bankAccountNumber: string; bankAccountType: string }; downloadUrl: string }[]; links: { first?: string; last?: string; prev?: string; next?: string }; meta: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerSettlementReportReadResponse = { data: { id: number; partnerId: number; number: string; date: string; periodStart: string; periodEnd: string; currencyCode: string; totalAmount: { withoutTax: number }; totalExpenses: number; totalRevenue: number; totalAwaitedRevenue: number; totalCollectedRevenue: number; totalCollectedRevenueFromPreviousPeriod: number; totalEnergyCpoWh: number; totalEnergyEmspWh: number; supplier: { type: 'individual' | 'company'; name: string; contactPerson: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region: string; city: string; postCode: string; address: string; regNo: string; taxId: string; phone: string; email: string }; customer: { type: 'individual' | 'company'; name: string; contactPerson: string; country: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region: string; city: string; postCode: string; address: string; regNo: string; taxId: string; phone: string; email: string } & { bankIban: string; bankName: string; bankAddress: string; bankCode: string; bankAccountNumber: string; bankAccountType: string }; downloadUrl: string } };

export type PartnerSettlementReportPartnerSettlementRecordsListingResponse = { data: { id: number } & { date: string; paidAmount: number; note: string }[]; links: { first?: string; last?: string; prev?: string; next?: string }; meta: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerSettlementReportPartnerSettlementRecordCreateResponse = { data: { id: number } & { date: string; paidAmount: number; note: string } };

export type PartnertSettlementReportPartnerSettlementRecordReadResponse = { data: { id: number } & { date: string; paidAmount: number; note: string } };

export type PartnerSettlementReportPartnerSettlementRecordUpdateResponse = { data: { id: number } & { date: string; paidAmount: number; note: string } };

export type PartnersListingResponse = { data?: { id?: number; name: string; businessName?: string; regNo?: string; vatNo?: string; address?: string; postcode?: string; city?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'null'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; contactDetails?: { administrative?: { contactPerson?: string; email?: string; phone?: string }; technical?: { contactPerson?: string; email?: string; phone?: string }; billing?: { contactPerson?: string; email?: string; phone?: string } }; notifications?: { technical?: { chargePointFaults?: boolean }; billing?: { settlementReports?: boolean } }; monthlyPlatformFee?: number; options?: { createUsers?: boolean; addUserBalance?: boolean; supplierOnReceipts?: boolean; allowToControlTariffs?: boolean; allowToControlTariffGroups?: boolean }; corporateBilling?: { enabled?: boolean; monthlyLimit?: number; discount?: number }; externalId?: string; lastUpdatedAt?: string; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type PartnerCreateResponse = { data?: { id?: number; name: string; businessName?: string; regNo?: string; vatNo?: string; address?: string; postcode?: string; city?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'null'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; contactDetails?: { administrative?: { contactPerson?: string; email?: string; phone?: string }; technical?: { contactPerson?: string; email?: string; phone?: string }; billing?: { contactPerson?: string; email?: string; phone?: string } }; notifications?: { technical?: { chargePointFaults?: boolean }; billing?: { settlementReports?: boolean } }; monthlyPlatformFee?: number; options?: { createUsers?: boolean; addUserBalance?: boolean; supplierOnReceipts?: boolean; allowToControlTariffs?: boolean; allowToControlTariffGroups?: boolean }; corporateBilling?: { enabled?: boolean; monthlyLimit?: number; discount?: number }; externalId?: string; lastUpdatedAt?: string; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string } } };

export type PartnerReadResponse = { data?: { id?: number; name: string; businessName?: string; regNo?: string; vatNo?: string; address?: string; postcode?: string; city?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'null'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; contactDetails?: { administrative?: { contactPerson?: string; email?: string; phone?: string }; technical?: { contactPerson?: string; email?: string; phone?: string }; billing?: { contactPerson?: string; email?: string; phone?: string } }; notifications?: { technical?: { chargePointFaults?: boolean }; billing?: { settlementReports?: boolean } }; monthlyPlatformFee?: number; options?: { createUsers?: boolean; addUserBalance?: boolean; supplierOnReceipts?: boolean; allowToControlTariffs?: boolean; allowToControlTariffGroups?: boolean }; corporateBilling?: { enabled?: boolean; monthlyLimit?: number; discount?: number }; externalId?: string; lastUpdatedAt?: string; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string } } };

export type PartnerUpdateResponse = { data?: { id?: number; name: string; businessName?: string; regNo?: string; vatNo?: string; address?: string; postcode?: string; city?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'null'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; contactDetails?: { administrative?: { contactPerson?: string; email?: string; phone?: string }; technical?: { contactPerson?: string; email?: string; phone?: string }; billing?: { contactPerson?: string; email?: string; phone?: string } }; notifications?: { technical?: { chargePointFaults?: boolean }; billing?: { settlementReports?: boolean } }; monthlyPlatformFee?: number; options?: { createUsers?: boolean; addUserBalance?: boolean; supplierOnReceipts?: boolean; allowToControlTariffs?: boolean; allowToControlTariffGroups?: boolean }; corporateBilling?: { enabled?: boolean; monthlyLimit?: number; discount?: number }; externalId?: string; lastUpdatedAt?: string; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string } } };

export type GetPaymentTerminalsResponse = { data?: { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; chargingZoneId?: number; chargePointId?: number; serialNumber?: string; defaultLanguage?: string; displayTextTimeout?: number; displayText?: string; operatorId?: number; externalId?: string } & { preauthorizeAmount?: number; currencyId?: number; valueAddedTaxId?: number } | { transactionTimeout?: number } & { isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; displayTextTimeout?: number; displayText?: string; serialNumber: string; defaultLanguage: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; supportedLanguages?: string[]; bundle?: { version?: string; downloadUrl?: string }; networkStatusMonitoringEnabled?: boolean } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; webhookUrl?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { terminalId?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { verificationCode?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name: string; integrationId: number; terminalType: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId: number } & { invoiceFields?: { field: string; required: boolean; type: 'individual' | 'company' }[] } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; merchantAccount?: string; adyenApiKey?: string; supportedLanguages?: string[]; networkStatusMonitoringEnabled?: boolean }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type CreatePaymentTerminalResponse = { data?: { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; chargingZoneId?: number; chargePointId?: number; serialNumber?: string; defaultLanguage?: string; displayTextTimeout?: number; displayText?: string; operatorId?: number; externalId?: string } & { preauthorizeAmount?: number; currencyId?: number; valueAddedTaxId?: number } | { transactionTimeout?: number } & { isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; displayTextTimeout?: number; displayText?: string; serialNumber: string; defaultLanguage: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; supportedLanguages?: string[]; bundle?: { version?: string; downloadUrl?: string }; networkStatusMonitoringEnabled?: boolean } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; webhookUrl?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { terminalId?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { verificationCode?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name: string; integrationId: number; terminalType: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId: number } & { invoiceFields?: { field: string; required: boolean; type: 'individual' | 'company' }[] } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; merchantAccount?: string; adyenApiKey?: string; supportedLanguages?: string[]; networkStatusMonitoringEnabled?: boolean } };

export type GetPaymentTerminalResponse = { data?: { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; chargingZoneId?: number; chargePointId?: number; serialNumber?: string; defaultLanguage?: string; displayTextTimeout?: number; displayText?: string; operatorId?: number; externalId?: string } & { preauthorizeAmount?: number; currencyId?: number; valueAddedTaxId?: number } | { transactionTimeout?: number } & { isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; displayTextTimeout?: number; displayText?: string; serialNumber: string; defaultLanguage: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; supportedLanguages?: string[]; bundle?: { version?: string; downloadUrl?: string }; networkStatusMonitoringEnabled?: boolean } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; webhookUrl?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { terminalId?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { verificationCode?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name: string; integrationId: number; terminalType: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId: number } & { invoiceFields?: { field: string; required: boolean; type: 'individual' | 'company' }[] } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; merchantAccount?: string; adyenApiKey?: string; supportedLanguages?: string[]; networkStatusMonitoringEnabled?: boolean } };

export type UpdatePaymentTerminalResponse = { data?: { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; chargingZoneId?: number; chargePointId?: number; serialNumber?: string; defaultLanguage?: string; displayTextTimeout?: number; displayText?: string; operatorId?: number; externalId?: string } & { preauthorizeAmount?: number; currencyId?: number; valueAddedTaxId?: number } | { transactionTimeout?: number } & { isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; displayTextTimeout?: number; displayText?: string; serialNumber: string; defaultLanguage: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; isOnline?: boolean; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; supportedLanguages?: string[]; bundle?: { version?: string; downloadUrl?: string }; networkStatusMonitoringEnabled?: boolean } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; webhookUrl?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { terminalId?: string; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { verificationCode?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; serialNumber?: string; externalId?: string } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { serialNumber?: string; externalId?: string } | { id?: number; name: string; integrationId: number; terminalType: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId: number } & { invoiceFields?: { field: string; required: boolean; type: 'individual' | 'company' }[] } | { id?: number; name?: string; integrationId?: number; terminalType?: 'Payter' | 'Valina' | 'Crane' | 'Ampeco' | 'Nayax' | 'Embedded' | 'Pax' | 'Windcave' | 'Web portal' | 'AdyenCastles'; operatorId?: number } & { chargingZoneId?: number; chargePointId?: number } & { adminToken?: string; networkStatus?: 'online' | 'offline' | 'unknown'; phone?: string; defaultLanguage?: string; presentCardOnStopSession?: boolean; info?: { locale?: string; translation?: string }[]; currencyCode?: string; serialNumber?: string; externalId?: string; merchantAccount?: string; adyenApiKey?: string; supportedLanguages?: string[]; networkStatusMonitoringEnabled?: boolean } };

export type CreatePcIdResponse = { data?: { id?: number; pcId: string; name: string; vehicleType: 'company' | 'private'; userId: number; idTags?: { id?: number; type?: 'rfid' | 'mac_address' | 'emaid'; name?: string; paymentMethod?: string; status?: 'active' | 'disabled' | 'suspended'; expireAt?: string }[] } };

export type ListPcIdsResponse = { data?: { id?: number; pcId: string; name: string; vehicleType: 'company' | 'private'; userId: number; idTags?: { id?: number; type?: 'rfid' | 'mac_address' | 'emaid'; name?: string; paymentMethod?: string; status?: 'active' | 'disabled' | 'suspended'; expireAt?: string }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UpdatePcIdResponse = { data?: { id?: number; pcId: string; name: string; vehicleType: 'company' | 'private'; userId: number; idTags?: { id?: number; type?: 'rfid' | 'mac_address' | 'emaid'; name?: string; paymentMethod?: string; status?: 'active' | 'disabled' | 'suspended'; expireAt?: string }[] } };

export type GetPcIdResponse = { data?: { id?: number; pcId: string; name: string; vehicleType: 'company' | 'private'; userId: number; idTags?: { id?: number; type?: 'rfid' | 'mac_address' | 'emaid'; name?: string; paymentMethod?: string; status?: 'active' | 'disabled' | 'suspended'; expireAt?: string }[] } };

export type ReceiptsListingResponse = { data?: { id: number; receiptNo: string; userId: number; totalKwh?: number; periodStart?: string; periodEnd?: string; totalAmount: number; tax?: { taxId?: number; taxPercentage?: number }; paymentStatus?: 'pending' | 'paid' | 'partially_paid'; downloadUrl?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type ReceiptReadResponse = { data?: { id: number; receiptNo: string; userId: number; totalKwh?: number; periodStart?: string; periodEnd?: string; totalAmount: number; tax?: { taxId?: number; taxPercentage?: number }; paymentStatus?: 'pending' | 'paid' | 'partially_paid'; downloadUrl?: string } };

export type ReservationsListingResponse = { data?: { id: number; chargePointId: number; evseId: number; status: 'active' | 'expired' | 'canceled' | 'done'; userId: number; reservedAt: string; canceledAt?: string; duration: number; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type ReservationReadResponse = { data?: { id: number; chargePointId: number; evseId: number; status: 'active' | 'expired' | 'canceled' | 'done'; userId: number; reservedAt: string; canceledAt?: string; duration: number; lastUpdatedAt?: string } };

export type ListRoamingConnectionsResponse = { data?: { id: number; protocol: 'OCPI' | 'Gireve OCPI 2.1.1' | 'Hubject OICP 2.2' | 'Hubject OICP 2.3'; endpoint: string; ocpi?: { token?: string }; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type GetRoamingConnectionResponse = { data?: { id: number; protocol: 'OCPI' | 'Gireve OCPI 2.1.1' | 'Hubject OICP 2.2' | 'Hubject OICP 2.3'; endpoint: string; ocpi?: { token?: string }; lastUpdatedAt?: string } };

export type RoamingOperatorsListingResponse = { data?: { id?: number; role?: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; enabled?: boolean; countryCode?: string; partyId?: string; cpoSettings?: { cpoQrcodePrefix?: string; manualEvseManagement?: boolean; applyCustomTariffsToEvsesWithRoamingTariff?: boolean; sendsPeriodicMeterUpdates?: boolean; externalTariffIntegration?: string; threatEvseStatusUnknownAs?: 'available' | 'unavailable'; phaseAcPowerFormula?: 'amperage_voltage_3' | 'amperage_voltage_sqr3' }; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type RoamingOperatorReadResponse = { data?: { id?: number; role?: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; enabled?: boolean; countryCode?: string; partyId?: string; cpoSettings?: { cpoQrcodePrefix?: string; manualEvseManagement?: boolean; applyCustomTariffsToEvsesWithRoamingTariff?: boolean; sendsPeriodicMeterUpdates?: boolean; externalTariffIntegration?: string; threatEvseStatusUnknownAs?: 'available' | 'unavailable'; phaseAcPowerFormula?: 'amperage_voltage_3' | 'amperage_voltage_sqr3' }; lastUpdatedAt?: string } };

export type RoamingOperatorUpdateResponse = { data?: { id?: number; role?: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; enabled?: boolean; countryCode?: string; partyId?: string; cpoSettings?: { cpoQrcodePrefix?: string; manualEvseManagement?: boolean; applyCustomTariffsToEvsesWithRoamingTariff?: boolean; sendsPeriodicMeterUpdates?: boolean; externalTariffIntegration?: string; threatEvseStatusUnknownAs?: 'available' | 'unavailable'; phaseAcPowerFormula?: 'amperage_voltage_3' | 'amperage_voltage_sqr3' }; lastUpdatedAt?: string } };

export type ListRoamingCustomTariffFiltersResponse = { data?: { id: number; name: string; status: 'enabled' | 'disabled'; countryCode?: string; applicableCurrentTypes: 'AC' | 'DC'[]; powerBelowKw?: number; evseIdPrefix?: string; order: number; createdAt: string; updatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CreateRoamingCustomTariffFilterResponse = { data?: { id: number; name: string; status: 'enabled' | 'disabled'; countryCode?: string; applicableCurrentTypes: 'AC' | 'DC'[]; powerBelowKw?: number; evseIdPrefix?: string; order: number; createdAt: string; updatedAt: string } };

export type ReorderRoamingCustomTariffFiltersResponse = { message?: string };

export type GetRoamingCustomTariffFilterResponse = { data?: { id: number; name: string; status: 'enabled' | 'disabled'; countryCode?: string; applicableCurrentTypes: 'AC' | 'DC'[]; powerBelowKw?: number; evseIdPrefix?: string; order: number; createdAt: string; updatedAt: string } };

export type UpdateRoamingCustomTariffFilterResponse = { data?: { id: number; name: string; status: 'enabled' | 'disabled'; countryCode?: string; applicableCurrentTypes: 'AC' | 'DC'[]; powerBelowKw?: number; evseIdPrefix?: string; order: number; createdAt: string; updatedAt: string } };

export type RoamingProvidersListingResponse = { data?: { id: number; role: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; countryCode?: string; partyId?: string; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type RoamingProviderCreateResponse = { data?: { id: number; role: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; countryCode?: string; partyId?: string; lastUpdatedAt: string } };

export type RoamingProviderReadResponse = { data?: { id: number; role: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; countryCode?: string; partyId?: string; lastUpdatedAt: string } };

export type RoamingProviderUpdateResponse = { data?: { id: number; role: string; hubjectId?: string; businessName?: string; platformId?: number; partnerId?: number; countryCode?: string; partyId?: string; lastUpdatedAt: string } };

export type RoamingTariffsListingResponse = { data?: { id?: number; roamingIds?: string[]; roamingTariffHumanReadable?: string; rawRoamingTariffs?: Record<string, unknown>[]; operatorId?: number; tariffGroupId?: number }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type RoamingTariffReadResponse = { data?: { id?: number; roamingIds?: string[]; roamingTariffHumanReadable?: string; rawRoamingTariffs?: Record<string, unknown>[]; operatorId?: number; tariffGroupId?: number } };

export type RoamingTariffUpdateResponse = { data?: { id?: number; roamingIds?: string[]; roamingTariffHumanReadable?: string; rawRoamingTariffs?: Record<string, unknown>[]; operatorId?: number; tariffGroupId?: number } };

export type SecurityEventsListingResponse = { data?: { id?: number; chargePoint?: number; type: 'FirmwareUpdated' | 'SettingSystemTime' | 'StartupOfTheDevice' | 'ResetOrReboot' | 'SecurityLogWasCleared' | 'MemoryExhaustion' | 'TamperDetectionActivated'; techInfo?: string; timestamp: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type SecurityEventReadResponse = { data?: { id?: number; chargePoint?: number; type: 'FirmwareUpdated' | 'SettingSystemTime' | 'StartupOfTheDevice' | 'ResetOrReboot' | 'SecurityLogWasCleared' | 'MemoryExhaustion' | 'TamperDetectionActivated'; techInfo?: string; timestamp: string } };

export type SessionsListingResponse = { data?: { id: string; chargePointId: number; evseId: number; connectorId?: number; status: 'unknown' | 'pending' | 'active' | 'finished' | 'failed' | 'expired'; reason?: 'working_hours_exceeded' | 'timeout' | 'authorization_amount_reached' | 'new_start_transaction_received' | 'force_stop' | 'standard_stop' | 'energy_exceeded' | 'schedule_completed' | 'pre_authorization_failed' | 'system_force_stop' | 'time_limit' | 'balance_exceeded' | 'deauthorized' | 'emergencystop' | 'energylimitreached' | 'evdisconnected' | 'groundfault' | 'immediatereset' | 'hardreset' | 'local' | 'localoutofcredit' | 'masterpass' | 'other' | 'overcurrentfault' | 'powerloss' | 'powerquality' | 'reboot' | 'remote' | 'soclimitreached' | 'stoppedbyev' | 'timeoutlimitreached' | 'softreset' | 'unlockcommand' | 'no_ev_parked' | 'no_ev_connected' | 'charge_point_timeout' | 'charging_on_evse_not_allowed' | 'remote_start_failed' | 'no_user_for_agile_streets' | 'rejected' | 'canceled_reservation' | 'evse_occupied' | 'evse_inoperative' | 'failed' | 'not_supported' | 'unknown_reservation' | 'ev_not_connected_to_evse' | 'authorization_failed' | 'unknown_session'; userId: number; bookingId?: number; startedAt: string; stoppedAt?: string; energy: number; powerKw?: number; socPercent?: number; amount?: number; totalAmount?: { withTax: number; withoutTax?: number }; tax?: { taxId?: number; taxPercentage?: number }; currency?: string; paymentType?: 'tokenized' | 'subscription' | 'balance' | 'corporate' | 'terminal' | 'bank_transfer'; paymentMethodId?: string; terminalId?: number; nonBillableEnergy?: number; paymentStatus?: 'pending' | 'paid' | 'partially' | 'failed' | 'null'; authorizationId: number; idTag?: string; idTagLabel?: string; extendingSessionId?: number; originalSessionId?: number; extendedBySessionId?: number; reimbursementEligibility?: boolean; externalSessionId?: string; authorization?: { id: number; method: 'user_device' | 'rfid_tag' | 'admin' | 'plug_and_charge'; source: 'local' | 'roaming' | 'third_party'; createdAt: string; status: 'accepted' | 'rejected'; rejectionReason: string; userId?: number; rfidTagUid?: string; roaming?: { platformId?: number; platformRoleId?: number; platformRole?: string; reference?: string; client?: string }; lastUpdatedAt?: string }; chargingPeriods?: { id: number; energy: number; startedAt: string; stoppedAt?: string; state: string; chargingState?: 'charging' | 'idle'; pricingDetails?: { chargingType?: 'boosted' | 'optimised'; dayPeriod?: 'day' | 'night'; pricingMethod?: 'duration' | 'energy' | 'durationAndEnergy' | 'free'; price?: number; markup?: number; initialEnergyPrice?: number; initialDurationPrice?: number; startHour?: string; endHour?: string; day?: string }; amount?: number; priceBreakdown?: { type: 'flat' | 'connection' | 'energy' | 'charging_time' | 'idle_time' | 'power_levels_time' | 'min_price' | 'service_fee'; currency: string; unit: 'kwh' | 'minute' | 'session'; pricePerUnit: { withTax: number; withoutTax?: number }; quantity: number; price: { withTax: number; withoutTax?: number }; taxPercentage?: number }[] }[]; priceBreakdown?: { type: 'flat' | 'connection' | 'energy' | 'charging_time' | 'idle_time' | 'power_levels_time' | 'min_price' | 'service_fee'; currency: string; unit: 'kwh' | 'minute' | 'session'; pricePerUnit: { withTax: number; withoutTax?: number }; quantity: number; price: { withTax: number; withoutTax?: number }; taxPercentage?: number } & { totalPrice: number; unitPrice: number }[]; tariffSnapshotId?: number; electricityCost?: number; evsePhysicalReference?: string; paymentStatusUpdatedAt?: string; roaming?: { cdrIds?: number[]; sessionId?: string; roamingOperatorCpoId?: number; cpoLastUpdatedAt?: string }; lastUpdatedAt?: string; randomisedDelay?: number; receiptId?: number; externalAppData?: Record<string, unknown>; clockAlignedEnergyConsumption?: { start: string; end: string; energyConsumed: number; energyConsumption: { total: number; local?: number; grid: number } }[]; energyConsumption: { total: number; local?: number; grid: number }; estimatedElectricityCostSavings?: number; billingStatus: 'pending' | 'suspended' | 'completed' | 'null'; power?: { latest?: number; peak?: number; average?: number } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type SessionReadResponse = { data?: { id: string; chargePointId: number; evseId: number; connectorId?: number; status: 'unknown' | 'pending' | 'active' | 'finished' | 'failed' | 'expired'; reason?: 'working_hours_exceeded' | 'timeout' | 'authorization_amount_reached' | 'new_start_transaction_received' | 'force_stop' | 'standard_stop' | 'energy_exceeded' | 'schedule_completed' | 'pre_authorization_failed' | 'system_force_stop' | 'time_limit' | 'balance_exceeded' | 'deauthorized' | 'emergencystop' | 'energylimitreached' | 'evdisconnected' | 'groundfault' | 'immediatereset' | 'hardreset' | 'local' | 'localoutofcredit' | 'masterpass' | 'other' | 'overcurrentfault' | 'powerloss' | 'powerquality' | 'reboot' | 'remote' | 'soclimitreached' | 'stoppedbyev' | 'timeoutlimitreached' | 'softreset' | 'unlockcommand' | 'no_ev_parked' | 'no_ev_connected' | 'charge_point_timeout' | 'charging_on_evse_not_allowed' | 'remote_start_failed' | 'no_user_for_agile_streets' | 'rejected' | 'canceled_reservation' | 'evse_occupied' | 'evse_inoperative' | 'failed' | 'not_supported' | 'unknown_reservation' | 'ev_not_connected_to_evse' | 'authorization_failed' | 'unknown_session'; userId: number; bookingId?: number; startedAt: string; stoppedAt?: string; energy: number; powerKw?: number; socPercent?: number; amount?: number; totalAmount?: { withTax: number; withoutTax?: number }; tax?: { taxId?: number; taxPercentage?: number }; currency?: string; paymentType?: 'tokenized' | 'subscription' | 'balance' | 'corporate' | 'terminal' | 'bank_transfer'; paymentMethodId?: string; terminalId?: number; nonBillableEnergy?: number; paymentStatus?: 'pending' | 'paid' | 'partially' | 'failed' | 'null'; authorizationId: number; idTag?: string; idTagLabel?: string; extendingSessionId?: number; originalSessionId?: number; extendedBySessionId?: number; reimbursementEligibility?: boolean; externalSessionId?: string; authorization?: { id: number; method: 'user_device' | 'rfid_tag' | 'admin' | 'plug_and_charge'; source: 'local' | 'roaming' | 'third_party'; createdAt: string; status: 'accepted' | 'rejected'; rejectionReason: string; userId?: number; rfidTagUid?: string; roaming?: { platformId?: number; platformRoleId?: number; platformRole?: string; reference?: string; client?: string }; lastUpdatedAt?: string }; chargingPeriods?: { id: number; energy: number; startedAt: string; stoppedAt?: string; state: string; chargingState?: 'charging' | 'idle'; pricingDetails?: { chargingType?: 'boosted' | 'optimised'; dayPeriod?: 'day' | 'night'; pricingMethod?: 'duration' | 'energy' | 'durationAndEnergy' | 'free'; price?: number; markup?: number; initialEnergyPrice?: number; initialDurationPrice?: number; startHour?: string; endHour?: string; day?: string }; amount?: number; priceBreakdown?: { type: 'flat' | 'connection' | 'energy' | 'charging_time' | 'idle_time' | 'power_levels_time' | 'min_price' | 'service_fee'; currency: string; unit: 'kwh' | 'minute' | 'session'; pricePerUnit: { withTax: number; withoutTax?: number }; quantity: number; price: { withTax: number; withoutTax?: number }; taxPercentage?: number }[] }[]; priceBreakdown?: { type: 'flat' | 'connection' | 'energy' | 'charging_time' | 'idle_time' | 'power_levels_time' | 'min_price' | 'service_fee'; currency: string; unit: 'kwh' | 'minute' | 'session'; pricePerUnit: { withTax: number; withoutTax?: number }; quantity: number; price: { withTax: number; withoutTax?: number }; taxPercentage?: number } & { totalPrice: number; unitPrice: number }[]; tariffSnapshotId?: number; electricityCost?: number; evsePhysicalReference?: string; paymentStatusUpdatedAt?: string; roaming?: { cdrIds?: number[]; sessionId?: string; roamingOperatorCpoId?: number; cpoLastUpdatedAt?: string }; lastUpdatedAt?: string; randomisedDelay?: number; receiptId?: number; externalAppData?: Record<string, unknown>; clockAlignedEnergyConsumption?: { start: string; end: string; energyConsumed: number; energyConsumption: { total: number; local?: number; grid: number } }[]; energyConsumption: { total: number; local?: number; grid: number }; estimatedElectricityCostSavings?: number; billingStatus: 'pending' | 'suspended' | 'completed' | 'null'; power?: { latest?: number; peak?: number; average?: number } } };

export type SessionsConsumptionStatsReadResponse = { data?: { energy: number; power: number; timestamp: string }[] };

export type SettingsListingResponse = { data?: { baseCurrency?: { id: number; lastUpdatedAt?: string }; defaultTax?: { id: number; enableMultiTaxSupport?: boolean; taxInformationNotInInvoicesAndReceipts?: boolean; lastUpdatedAt?: string }; reservations?: { enableReservations?: boolean; reservationTime?: number; expiryNotification?: number; maxReservationsPerDayPerUser?: number; cooldownTimeBetweenReservations?: number; enableReservationsQueue?: boolean; lastUpdatedAt?: string } } };

export type SubOperatorsListingResponse = { data?: { id?: number; name?: string; partner_ids?: number[]; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type SubOperatorReadResponse = { data?: { id?: number; name?: string; partner_ids?: number[]; lastUpdatedAt?: string } };

export type SubscriptionPlansListingResponse = { data?: { id: number; name: { locale?: string; translation?: string }[]; description: { locale?: string; translation?: string }[]; renewalCycle: 'monthly' | 'annually'; freeRenewalPeriods?: number; type: 'pre-paid' | 'post-paid'; baseFee?: number; baseFeeAppliesPerEachHomeCharger?: boolean; postPaidChargingSessionsAccumulation?: 'none' | 'personal' | 'personal_commercial'; billingUsageThreshold?: number; billingType?: 'default' | 'internal' | 'external'; status: 'enabled' | 'disabled'; allowance?: { resetCycle?: 'as_renewal_cycle' | 'after_each_session' | 'after_24_hours' | 'after_each_week' | 'after_each_month' | 'after_each_year'; type?: 'none' | 'combined' | 'separate'; homeChargersOnly?: boolean; includedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludeRoaming?: boolean; includedPartnerChargePoints?: number[]; excludedPartnerChargePoints?: number[]; combined?: number; ac?: number; dc?: number }; visibilityRestrictions?: { includedPartnerUsers?: number[]; excludedPartnerUsers?: number[]; includedUserGroups?: number[]; excludedUserGroups?: number[] }; replacementPlanId?: number; replacedAt?: string; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type SubscriptionPlanCreateResponse = { data?: { id: number; name: { locale?: string; translation?: string }[]; description: { locale?: string; translation?: string }[]; renewalCycle: 'monthly' | 'annually'; freeRenewalPeriods?: number; type: 'pre-paid' | 'post-paid'; baseFee?: number; baseFeeAppliesPerEachHomeCharger?: boolean; postPaidChargingSessionsAccumulation?: 'none' | 'personal' | 'personal_commercial'; billingUsageThreshold?: number; billingType?: 'default' | 'internal' | 'external'; status: 'enabled' | 'disabled'; allowance?: { resetCycle?: 'as_renewal_cycle' | 'after_each_session' | 'after_24_hours' | 'after_each_week' | 'after_each_month' | 'after_each_year'; type?: 'none' | 'combined' | 'separate'; homeChargersOnly?: boolean; includedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludeRoaming?: boolean; includedPartnerChargePoints?: number[]; excludedPartnerChargePoints?: number[]; combined?: number; ac?: number; dc?: number }; visibilityRestrictions?: { includedPartnerUsers?: number[]; excludedPartnerUsers?: number[]; includedUserGroups?: number[]; excludedUserGroups?: number[] }; replacementPlanId?: number; replacedAt?: string; lastUpdatedAt?: string } };

export type SubscriptionPlanReadResponse = { data?: { id: number; name: { locale?: string; translation?: string }[]; description: { locale?: string; translation?: string }[]; renewalCycle: 'monthly' | 'annually'; freeRenewalPeriods?: number; type: 'pre-paid' | 'post-paid'; baseFee?: number; baseFeeAppliesPerEachHomeCharger?: boolean; postPaidChargingSessionsAccumulation?: 'none' | 'personal' | 'personal_commercial'; billingUsageThreshold?: number; billingType?: 'default' | 'internal' | 'external'; status: 'enabled' | 'disabled'; allowance?: { resetCycle?: 'as_renewal_cycle' | 'after_each_session' | 'after_24_hours' | 'after_each_week' | 'after_each_month' | 'after_each_year'; type?: 'none' | 'combined' | 'separate'; homeChargersOnly?: boolean; includedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludeRoaming?: boolean; includedPartnerChargePoints?: number[]; excludedPartnerChargePoints?: number[]; combined?: number; ac?: number; dc?: number }; visibilityRestrictions?: { includedPartnerUsers?: number[]; excludedPartnerUsers?: number[]; includedUserGroups?: number[]; excludedUserGroups?: number[] }; replacementPlanId?: number; replacedAt?: string; lastUpdatedAt?: string } };

export type SubscriptionPlanUpdateResponse = { data?: { id: number; name: { locale?: string; translation?: string }[]; description: { locale?: string; translation?: string }[]; renewalCycle: 'monthly' | 'annually'; freeRenewalPeriods?: number; type: 'pre-paid' | 'post-paid'; baseFee?: number; baseFeeAppliesPerEachHomeCharger?: boolean; postPaidChargingSessionsAccumulation?: 'none' | 'personal' | 'personal_commercial'; billingUsageThreshold?: number; billingType?: 'default' | 'internal' | 'external'; status: 'enabled' | 'disabled'; allowance?: { resetCycle?: 'as_renewal_cycle' | 'after_each_session' | 'after_24_hours' | 'after_each_week' | 'after_each_month' | 'after_each_year'; type?: 'none' | 'combined' | 'separate'; homeChargersOnly?: boolean; includedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludedCountries?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'[]; excludeRoaming?: boolean; includedPartnerChargePoints?: number[]; excludedPartnerChargePoints?: number[]; combined?: number; ac?: number; dc?: number }; visibilityRestrictions?: { includedPartnerUsers?: number[]; excludedPartnerUsers?: number[]; includedUserGroups?: number[]; excludedUserGroups?: number[] }; replacementPlanId?: number; replacedAt?: string; lastUpdatedAt?: string } };

export type SubscriptionsListingResponse = { data?: { id: number; planId: number; userId: number; startDate: string; endDate: string; status: 'active' | 'canceled' | 'expired' | 'suspended' | 'pending'; statusDate: string; remainingAllowance?: { combined?: number; ac?: number; dc?: number }; remainingFreeRenewalPeriods?: number; shouldUseExternalBilling?: boolean; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type SubscriptionReadResponse = { data?: { id: number; planId: number; userId: number; startDate: string; endDate: string; status: 'active' | 'canceled' | 'expired' | 'suspended' | 'pending'; statusDate: string; remainingAllowance?: { combined?: number; ac?: number; dc?: number }; remainingFreeRenewalPeriods?: number; shouldUseExternalBilling?: boolean; lastUpdatedAt?: string } };

export type TariffGroupsListingResponse = { data?: { id: number; name: string; tariffIds?: number[]; partnerId?: number; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TariffGroupCreateResponse = { data?: { id: number; name: string; tariffIds?: number[]; partnerId?: number; lastUpdatedAt?: string } };

export type TariffGroupReadResponse = { data?: { id: number; name: string; tariffIds?: number[]; partnerId?: number; lastUpdatedAt?: string } };

export type TariffGroupUpdateResponse = { data?: { id: number; name: string; tariffIds?: number[]; partnerId?: number; lastUpdatedAt?: string } };

export type TariffSnapshotReadResponse = { data?: { id: number; name: string; type: 'free' | 'flat rate' | 'duration+energy' | 'duration+energy time of day' | 'energy tou' | 'standard' | 'charging not allowed' | 'average power levels' | 'peak power levels' | 'standard_tod' | 'optimised dynamic pricing'; description?: Record<string, string>; additionalInformation?: Record<string, string>; learnMoreUrl?: Record<string, string>; dayTariffStart?: string; nightTariffStart?: string; pricing?: { pricePerSession?: number; connectionFee?: number; pricePerKwh?: number; dayPricePerKwh?: number; nightPricePerKwh?: number; pricePeriodInMinutes?: number; pricePerPeriod?: number; durationFeeLimit?: number; dayPricePerPeriod?: number; nightPricePerPeriod?: number; dayIdleFeePerMinute?: number; nightIdleFeePerMinute?: number; idleFeePerMinute?: number; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; idleFeePeriodStart?: string; idleFeePeriodEnd?: string; idleFeeLimit?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; minPrice?: number; preAuthorizeAmount?: number; taxID?: number; chargePointElectricityRate?: boolean; fallbackElectricityRateId?: number; markupPercentagePerKwh?: number; markupFixedFeePerKwh?: number; flexibleMarkUpAsFixedPerKwh?: { defaultPrice?: number; intervalPricing?: { startsAt: string; endsAt: string; price: number }[] }; multiPricePerKwh?: { firstKwh: number; lastKwh?: number; feePerKwh?: number; flatFee?: number }[]; multiPricePerDuration?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; multiIdleFee?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; regularUsePeriod?: number; averagePowerLevels?: { averagePowerUpToKw: number; pricePerMinute: number }[]; peakPowerLevels?: { peakPowerUpToKw: number; regularPricePerMinute: number; excessUsePricePerMin: number }[]; timePeriods?: { startTime: string; endTime: string }[]; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } }; daysWhenApplied?: { name?: string; specialDates?: string[]; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; pricePeriodInMinutes?: number; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } } }[]; thresholdPriceForEnergy?: number; priceForEnergyWhenOptimized?: number; optimisedLabel?: string; durationFeeFrom?: string; durationFeeTo?: string; subsidyIntegrationId?: number; lockPriceOnSessionStart?: boolean; lockEnergyPriceOnSessionStart?: boolean; lockDurationPriceOnSessionStart?: boolean; lockIdlePriceOnSessionStart?: boolean; stateOfChargeIdleThreshold?: number; averagePowerIdleThreshold?: number }; currency?: string; stopSession?: { timeLimitMinutes?: number; stopWhenEnergyExceedsKwh?: number }; restrictions?: { applyToUsersOfChargePointOwner?: boolean; applyToUsersOfChargePointPartner?: boolean; applyToUsersOfAllRoamingEmsps?: boolean; applyToAdHocUsers?: boolean; adHocPreAuthorizeAmount?: number; adHocStopWhenPreAuthorizedAmountFallsBelow?: number; applyToUsersOfPartners?: number[]; applyToUsersWithGroups?: string[]; applyToUserGroupIds?: number[]; applyToUsersWithSubscriptions?: number[]; startDate?: string; endDate?: string }; partner?: { id?: number }; lastUpdatedAt?: string; display?: { defaultPriceInformation?: string; defaultPriceInformationOffline?: string; priceInformation?: string; totalCostInformation?: string }; integrationId?: number } & { tariffId: number } };

export type TariffsListingResponse = { data?: { id: number; name: string; type: 'free' | 'flat rate' | 'duration+energy' | 'duration+energy time of day' | 'energy tou' | 'standard' | 'charging not allowed' | 'average power levels' | 'peak power levels' | 'standard_tod' | 'optimised dynamic pricing'; description?: Record<string, string>; additionalInformation?: Record<string, string>; learnMoreUrl?: Record<string, string>; dayTariffStart?: string; nightTariffStart?: string; pricing?: { pricePerSession?: number; connectionFee?: number; pricePerKwh?: number; dayPricePerKwh?: number; nightPricePerKwh?: number; pricePeriodInMinutes?: number; pricePerPeriod?: number; durationFeeLimit?: number; dayPricePerPeriod?: number; nightPricePerPeriod?: number; dayIdleFeePerMinute?: number; nightIdleFeePerMinute?: number; idleFeePerMinute?: number; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; idleFeePeriodStart?: string; idleFeePeriodEnd?: string; idleFeeLimit?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; minPrice?: number; preAuthorizeAmount?: number; taxID?: number; chargePointElectricityRate?: boolean; fallbackElectricityRateId?: number; markupPercentagePerKwh?: number; markupFixedFeePerKwh?: number; flexibleMarkUpAsFixedPerKwh?: { defaultPrice?: number; intervalPricing?: { startsAt: string; endsAt: string; price: number }[] }; multiPricePerKwh?: { firstKwh: number; lastKwh?: number; feePerKwh?: number; flatFee?: number }[]; multiPricePerDuration?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; multiIdleFee?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; regularUsePeriod?: number; averagePowerLevels?: { averagePowerUpToKw: number; pricePerMinute: number }[]; peakPowerLevels?: { peakPowerUpToKw: number; regularPricePerMinute: number; excessUsePricePerMin: number }[]; timePeriods?: { startTime: string; endTime: string }[]; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } }; daysWhenApplied?: { name?: string; specialDates?: string[]; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; pricePeriodInMinutes?: number; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } } }[]; thresholdPriceForEnergy?: number; priceForEnergyWhenOptimized?: number; optimisedLabel?: string; durationFeeFrom?: string; durationFeeTo?: string; subsidyIntegrationId?: number; lockPriceOnSessionStart?: boolean; lockEnergyPriceOnSessionStart?: boolean; lockDurationPriceOnSessionStart?: boolean; lockIdlePriceOnSessionStart?: boolean; stateOfChargeIdleThreshold?: number; averagePowerIdleThreshold?: number }; currency?: string; stopSession?: { timeLimitMinutes?: number; stopWhenEnergyExceedsKwh?: number }; restrictions?: { applyToUsersOfChargePointOwner?: boolean; applyToUsersOfChargePointPartner?: boolean; applyToUsersOfAllRoamingEmsps?: boolean; applyToAdHocUsers?: boolean; adHocPreAuthorizeAmount?: number; adHocStopWhenPreAuthorizedAmountFallsBelow?: number; applyToUsersOfPartners?: number[]; applyToUsersWithGroups?: string[]; applyToUserGroupIds?: number[]; applyToUsersWithSubscriptions?: number[]; startDate?: string; endDate?: string }; partner?: { id?: number }; lastUpdatedAt?: string; display?: { defaultPriceInformation?: string; defaultPriceInformationOffline?: string; priceInformation?: string; totalCostInformation?: string }; integrationId?: number }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TariffCreateResponse = { data?: { id: number; name: string; type: 'free' | 'flat rate' | 'duration+energy' | 'duration+energy time of day' | 'energy tou' | 'standard' | 'charging not allowed' | 'average power levels' | 'peak power levels' | 'standard_tod' | 'optimised dynamic pricing'; description?: Record<string, string>; additionalInformation?: Record<string, string>; learnMoreUrl?: Record<string, string>; dayTariffStart?: string; nightTariffStart?: string; pricing?: { pricePerSession?: number; connectionFee?: number; pricePerKwh?: number; dayPricePerKwh?: number; nightPricePerKwh?: number; pricePeriodInMinutes?: number; pricePerPeriod?: number; durationFeeLimit?: number; dayPricePerPeriod?: number; nightPricePerPeriod?: number; dayIdleFeePerMinute?: number; nightIdleFeePerMinute?: number; idleFeePerMinute?: number; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; idleFeePeriodStart?: string; idleFeePeriodEnd?: string; idleFeeLimit?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; minPrice?: number; preAuthorizeAmount?: number; taxID?: number; chargePointElectricityRate?: boolean; fallbackElectricityRateId?: number; markupPercentagePerKwh?: number; markupFixedFeePerKwh?: number; flexibleMarkUpAsFixedPerKwh?: { defaultPrice?: number; intervalPricing?: { startsAt: string; endsAt: string; price: number }[] }; multiPricePerKwh?: { firstKwh: number; lastKwh?: number; feePerKwh?: number; flatFee?: number }[]; multiPricePerDuration?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; multiIdleFee?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; regularUsePeriod?: number; averagePowerLevels?: { averagePowerUpToKw: number; pricePerMinute: number }[]; peakPowerLevels?: { peakPowerUpToKw: number; regularPricePerMinute: number; excessUsePricePerMin: number }[]; timePeriods?: { startTime: string; endTime: string }[]; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } }; daysWhenApplied?: { name?: string; specialDates?: string[]; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; pricePeriodInMinutes?: number; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } } }[]; thresholdPriceForEnergy?: number; priceForEnergyWhenOptimized?: number; optimisedLabel?: string; durationFeeFrom?: string; durationFeeTo?: string; subsidyIntegrationId?: number; lockPriceOnSessionStart?: boolean; lockEnergyPriceOnSessionStart?: boolean; lockDurationPriceOnSessionStart?: boolean; lockIdlePriceOnSessionStart?: boolean; stateOfChargeIdleThreshold?: number; averagePowerIdleThreshold?: number }; currency?: string; stopSession?: { timeLimitMinutes?: number; stopWhenEnergyExceedsKwh?: number }; restrictions?: { applyToUsersOfChargePointOwner?: boolean; applyToUsersOfChargePointPartner?: boolean; applyToUsersOfAllRoamingEmsps?: boolean; applyToAdHocUsers?: boolean; adHocPreAuthorizeAmount?: number; adHocStopWhenPreAuthorizedAmountFallsBelow?: number; applyToUsersOfPartners?: number[]; applyToUsersWithGroups?: string[]; applyToUserGroupIds?: number[]; applyToUsersWithSubscriptions?: number[]; startDate?: string; endDate?: string }; partner?: { id?: number }; lastUpdatedAt?: string; display?: { defaultPriceInformation?: string; defaultPriceInformationOffline?: string; priceInformation?: string; totalCostInformation?: string }; integrationId?: number } };

export type TariffReadResponse = { data?: { id: number; name: string; type: 'free' | 'flat rate' | 'duration+energy' | 'duration+energy time of day' | 'energy tou' | 'standard' | 'charging not allowed' | 'average power levels' | 'peak power levels' | 'standard_tod' | 'optimised dynamic pricing'; description?: Record<string, string>; additionalInformation?: Record<string, string>; learnMoreUrl?: Record<string, string>; dayTariffStart?: string; nightTariffStart?: string; pricing?: { pricePerSession?: number; connectionFee?: number; pricePerKwh?: number; dayPricePerKwh?: number; nightPricePerKwh?: number; pricePeriodInMinutes?: number; pricePerPeriod?: number; durationFeeLimit?: number; dayPricePerPeriod?: number; nightPricePerPeriod?: number; dayIdleFeePerMinute?: number; nightIdleFeePerMinute?: number; idleFeePerMinute?: number; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; idleFeePeriodStart?: string; idleFeePeriodEnd?: string; idleFeeLimit?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; minPrice?: number; preAuthorizeAmount?: number; taxID?: number; chargePointElectricityRate?: boolean; fallbackElectricityRateId?: number; markupPercentagePerKwh?: number; markupFixedFeePerKwh?: number; flexibleMarkUpAsFixedPerKwh?: { defaultPrice?: number; intervalPricing?: { startsAt: string; endsAt: string; price: number }[] }; multiPricePerKwh?: { firstKwh: number; lastKwh?: number; feePerKwh?: number; flatFee?: number }[]; multiPricePerDuration?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; multiIdleFee?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; regularUsePeriod?: number; averagePowerLevels?: { averagePowerUpToKw: number; pricePerMinute: number }[]; peakPowerLevels?: { peakPowerUpToKw: number; regularPricePerMinute: number; excessUsePricePerMin: number }[]; timePeriods?: { startTime: string; endTime: string }[]; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } }; daysWhenApplied?: { name?: string; specialDates?: string[]; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; pricePeriodInMinutes?: number; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } } }[]; thresholdPriceForEnergy?: number; priceForEnergyWhenOptimized?: number; optimisedLabel?: string; durationFeeFrom?: string; durationFeeTo?: string; subsidyIntegrationId?: number; lockPriceOnSessionStart?: boolean; lockEnergyPriceOnSessionStart?: boolean; lockDurationPriceOnSessionStart?: boolean; lockIdlePriceOnSessionStart?: boolean; stateOfChargeIdleThreshold?: number; averagePowerIdleThreshold?: number }; currency?: string; stopSession?: { timeLimitMinutes?: number; stopWhenEnergyExceedsKwh?: number }; restrictions?: { applyToUsersOfChargePointOwner?: boolean; applyToUsersOfChargePointPartner?: boolean; applyToUsersOfAllRoamingEmsps?: boolean; applyToAdHocUsers?: boolean; adHocPreAuthorizeAmount?: number; adHocStopWhenPreAuthorizedAmountFallsBelow?: number; applyToUsersOfPartners?: number[]; applyToUsersWithGroups?: string[]; applyToUserGroupIds?: number[]; applyToUsersWithSubscriptions?: number[]; startDate?: string; endDate?: string }; partner?: { id?: number }; lastUpdatedAt?: string; display?: { defaultPriceInformation?: string; defaultPriceInformationOffline?: string; priceInformation?: string; totalCostInformation?: string }; integrationId?: number } };

export type TariffUpdateResponse = { data?: { id: number; name: string; type: 'free' | 'flat rate' | 'duration+energy' | 'duration+energy time of day' | 'energy tou' | 'standard' | 'charging not allowed' | 'average power levels' | 'peak power levels' | 'standard_tod' | 'optimised dynamic pricing'; description?: Record<string, string>; additionalInformation?: Record<string, string>; learnMoreUrl?: Record<string, string>; dayTariffStart?: string; nightTariffStart?: string; pricing?: { pricePerSession?: number; connectionFee?: number; pricePerKwh?: number; dayPricePerKwh?: number; nightPricePerKwh?: number; pricePeriodInMinutes?: number; pricePerPeriod?: number; durationFeeLimit?: number; dayPricePerPeriod?: number; nightPricePerPeriod?: number; dayIdleFeePerMinute?: number; nightIdleFeePerMinute?: number; idleFeePerMinute?: number; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; idleFeePeriodStart?: string; idleFeePeriodEnd?: string; idleFeeLimit?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; minPrice?: number; preAuthorizeAmount?: number; taxID?: number; chargePointElectricityRate?: boolean; fallbackElectricityRateId?: number; markupPercentagePerKwh?: number; markupFixedFeePerKwh?: number; flexibleMarkUpAsFixedPerKwh?: { defaultPrice?: number; intervalPricing?: { startsAt: string; endsAt: string; price: number }[] }; multiPricePerKwh?: { firstKwh: number; lastKwh?: number; feePerKwh?: number; flatFee?: number }[]; multiPricePerDuration?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; multiIdleFee?: { firstUnit: number; lastUnit?: number; feePerUnit?: number; flatFee?: number }[]; regularUsePeriod?: number; averagePowerLevels?: { averagePowerUpToKw: number; pricePerMinute: number }[]; peakPowerLevels?: { peakPowerUpToKw: number; regularPricePerMinute: number; excessUsePricePerMin: number }[]; timePeriods?: { startTime: string; endTime: string }[]; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } }; daysWhenApplied?: { name?: string; specialDates?: string[]; idleFeeGracePeriodMinutes?: number; idlePricingPeriodInMinutes?: number; connectionFeeMinimumSessionDuration?: number; connectionFeeMinimumSessionEnergy?: number; durationFeeGracePeriod?: number; pricePeriodInMinutes?: number; pricePeriods?: { connectionFeePeriods?: { fee?: number[] }; energyFeePeriods?: { fee?: number[] }; durationFeePeriods?: { fee?: number[] }; idleFeePeriods?: { fee?: number[] } } }[]; thresholdPriceForEnergy?: number; priceForEnergyWhenOptimized?: number; optimisedLabel?: string; durationFeeFrom?: string; durationFeeTo?: string; subsidyIntegrationId?: number; lockPriceOnSessionStart?: boolean; lockEnergyPriceOnSessionStart?: boolean; lockDurationPriceOnSessionStart?: boolean; lockIdlePriceOnSessionStart?: boolean; stateOfChargeIdleThreshold?: number; averagePowerIdleThreshold?: number }; currency?: string; stopSession?: { timeLimitMinutes?: number; stopWhenEnergyExceedsKwh?: number }; restrictions?: { applyToUsersOfChargePointOwner?: boolean; applyToUsersOfChargePointPartner?: boolean; applyToUsersOfAllRoamingEmsps?: boolean; applyToAdHocUsers?: boolean; adHocPreAuthorizeAmount?: number; adHocStopWhenPreAuthorizedAmountFallsBelow?: number; applyToUsersOfPartners?: number[]; applyToUsersWithGroups?: string[]; applyToUserGroupIds?: number[]; applyToUsersWithSubscriptions?: number[]; startDate?: string; endDate?: string }; partner?: { id?: number }; lastUpdatedAt?: string; display?: { defaultPriceInformation?: string; defaultPriceInformationOffline?: string; priceInformation?: string; totalCostInformation?: string }; integrationId?: number } };

export type TaxIdentificationNumbersListingResponse = { data?: { id: number; name: string; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type TaxIdentificationNumberCreateResponse = { data?: { id: number; name: string; lastUpdatedAt?: string } };

export type TaxIdentificationNumberReadResponse = { data?: { id: number; name: string; lastUpdatedAt?: string } };

export type TaxIdentificationNumberUpdateResponse = { data?: { id: number; name: string; lastUpdatedAt?: string } };

export type TaxesListingResponse = { data?: { id: number; name: string; displayName?: { locale?: string; translation?: string }[]; percentage: number; taxIdentificationNumberId?: number; lastUpdatedAt: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TaxCreateResponse = { data?: { id: number; name: string; displayName?: { locale?: string; translation?: string }[]; percentage: number; taxIdentificationNumberId?: number; lastUpdatedAt: string } };

export type TaxReadResponse = { data?: { id: number; name: string; displayName?: { locale?: string; translation?: string }[]; percentage: number; taxIdentificationNumberId?: number; lastUpdatedAt: string } };

export type TaxUpdateResponse = { data?: { id: number; name: string; displayName?: { locale?: string; translation?: string }[]; percentage: number; taxIdentificationNumberId?: number; lastUpdatedAt: string } };

export type TemplatesListingResponse = { data?: { id?: number; name?: string; evses?: { id?: number; status?: 'active' | 'disabled' | 'out of order'; maxPower?: number; dlmPhases?: '1' | '3' | 'split'; networkId?: string; currentType?: 'ac' | 'dc'; dlmPriority?: number; inputVoltage?: '120' | '208' | '240' | '220-240' | '110-130' | '400' | '380' | '480' | '230'; tariffGroupId?: number; dlmMaxCurrentA?: number; allowsReservation?: boolean; dlmPhaseRotation?: 'RST' | 'RTS' | 'SRT' | 'STR' | 'TRS' | 'TSR'; dlmConnectedPhase?: 'L1' | 'L2' | 'L3' | 'L1_L2' | 'L1_L3' | 'L2_L3'; dlmEfficiencyPercent?: number }[]; subscriptionPlanIds?: number[]; lastUpdatedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type TermsAndPoliciesListingResponse = { data?: { id: number; document: { id: number; title?: { locale?: string; translation?: string }[]; subtitle?: { locale?: string; translation?: string }[]; consentText: { locale?: string; translation?: string }[] }; validFrom: string; summary?: { locale?: string; translation?: string }[]; content: { locale?: string; translation?: string }[]; status?: 'future' | 'active' | 'past'; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TermsAndPoliciesReadResponse = { id: number; document: { id: number; title?: { locale?: string; translation?: string }[]; subtitle?: { locale?: string; translation?: string }[]; consentText: { locale?: string; translation?: string }[] }; validFrom: string; summary?: { locale?: string; translation?: string }[]; content: { locale?: string; translation?: string }[]; status?: 'future' | 'active' | 'past'; lastUpdatedAt?: string };

export type TopUpPackagesListingResponse = { data?: { id?: number; price: number; bonus: number; enabled?: boolean }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TopUpPackagCreateResponse = { data?: { id?: number; price: number; bonus: number; enabled?: boolean } };

export type TopUpPackageReadResponse = { data?: { id?: number; price: number; bonus: number; enabled?: boolean } };

export type TopUpPackageUpdateResponse = { data?: { id?: number; price: number; bonus: number; enabled?: boolean } };

export type TransactionsListingResponse = { data?: { id: number; number: string; date: string; userId: number; userEmail?: string; sessionId: number; paymentMethod?: string; paymentMethodId?: string; purchaseResourceType?: 'subscription_plan' | 'topup_package' | 'session' | 'payment_authorisation' | 'payment_terminal_authorisation' | 'custom_fee'; purchaseResourceId?: number; totalAmount?: number; currency: string; status?: 'pending' | 'finalized' | 'failed' | 'reversed' | 'refunded' | 'authorized' | 'initialized'; ref: string; bankMessage?: string; failureReason?: string; invoiceId?: number; invoiceNo?: string; receiptId?: number; billingType?: 'internal' | 'external'; lastUpdatedAt?: string; finalizedAt?: string; terminalId?: number; voucherId?: number; cardDetails?: { type?: 'visa' | 'mastercard' | 'paypal' | 'maestro' | 'amex' | 'unknown'; last4?: string; expMonth?: string; expYear?: string; token?: string } }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type TransactionsCreateResponse = { data?: { id: number; number: string; date: string; userId: number; userEmail?: string; sessionId: number; paymentMethod?: string; paymentMethodId?: string; purchaseResourceType?: 'subscription_plan' | 'topup_package' | 'session' | 'payment_authorisation' | 'payment_terminal_authorisation' | 'custom_fee'; purchaseResourceId?: number; totalAmount?: number; currency: string; status?: 'pending' | 'finalized' | 'failed' | 'reversed' | 'refunded' | 'authorized' | 'initialized'; ref: string; bankMessage?: string; failureReason?: string; invoiceId?: number; invoiceNo?: string; receiptId?: number; billingType?: 'internal' | 'external'; lastUpdatedAt?: string; finalizedAt?: string; terminalId?: number; voucherId?: number; cardDetails?: { type?: 'visa' | 'mastercard' | 'paypal' | 'maestro' | 'amex' | 'unknown'; last4?: string; expMonth?: string; expYear?: string; token?: string } } };

export type TransactionReadResponse = { id: number; number: string; date: string; userId: number; userEmail?: string; sessionId: number; paymentMethod?: string; paymentMethodId?: string; purchaseResourceType?: 'subscription_plan' | 'topup_package' | 'session' | 'payment_authorisation' | 'payment_terminal_authorisation' | 'custom_fee'; purchaseResourceId?: number; totalAmount?: number; currency: string; status?: 'pending' | 'finalized' | 'failed' | 'reversed' | 'refunded' | 'authorized' | 'initialized'; ref: string; bankMessage?: string; failureReason?: string; invoiceId?: number; invoiceNo?: string; receiptId?: number; billingType?: 'internal' | 'external'; lastUpdatedAt?: string; finalizedAt?: string; terminalId?: number; voucherId?: number; cardDetails?: { type?: 'visa' | 'mastercard' | 'paypal' | 'maestro' | 'amex' | 'unknown'; last4?: string; expMonth?: string; expYear?: string; token?: string } };

export type TransactionUpdateResponse = { data?: { id: number; number: string; date: string; userId: number; userEmail?: string; sessionId: number; paymentMethod?: string; paymentMethodId?: string; purchaseResourceType?: 'subscription_plan' | 'topup_package' | 'session' | 'payment_authorisation' | 'payment_terminal_authorisation' | 'custom_fee'; purchaseResourceId?: number; totalAmount?: number; currency: string; status?: 'pending' | 'finalized' | 'failed' | 'reversed' | 'refunded' | 'authorized' | 'initialized'; ref: string; bankMessage?: string; failureReason?: string; invoiceId?: number; invoiceNo?: string; receiptId?: number; billingType?: 'internal' | 'external'; lastUpdatedAt?: string; finalizedAt?: string; terminalId?: number; voucherId?: number; cardDetails?: { type?: 'visa' | 'mastercard' | 'paypal' | 'maestro' | 'amex' | 'unknown'; last4?: string; expMonth?: string; expYear?: string; token?: string } } };

export type UserGroupsListingResponse = { data?: { id: number; name: string; partnerId?: number; description?: string; lastUpdatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UserGroupCreateResponse = { data?: { id: number; name: string; partnerId?: number; description?: string; lastUpdatedAt?: string } };

export type UserGroupReadResponse = { data?: { id: number; name: string; partnerId?: number; description?: string; lastUpdatedAt?: string } };

export type UserGroupUpdateResponse = { data?: { id: number; name: string; partnerId?: number; description?: string; lastUpdatedAt?: string } };

export type UsersListingResponse = { data?: { id?: string; email?: string; emailVerified?: string; requirePasswordReset?: boolean; firstName?: string; middleName?: string; lastName?: string; phone?: string; country?: string; state?: string; city?: string; postCode?: string; address?: string; vehicleNo?: string; personalId?: string; locale?: string; balance?: number; status?: 'enabled' | 'disabled'; userGroupIds?: number[]; externalId?: string; subscriptionId?: number; options?: { sessionsAllowed?: 'single_session' | 'multiple_simultaneous_sessions_per_idtag' | 'simultaneous_use_of_idtags' | 'multiple_simultaneous_sessions_remotely_and_idtags' }; password?: string; lastUpdatedAt?: string; createdAt?: string; createdBy?: string; receiveNewsAndPromotions?: boolean; partnerInvites?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string }[]; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string }; externalAppData?: Record<string, unknown> }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type UserCreateResponse = { data?: { id?: string; email?: string; emailVerified?: string; requirePasswordReset?: boolean; firstName?: string; middleName?: string; lastName?: string; phone?: string; country?: string; state?: string; city?: string; postCode?: string; address?: string; vehicleNo?: string; personalId?: string; locale?: string; balance?: number; status?: 'enabled' | 'disabled'; userGroupIds?: number[]; externalId?: string; subscriptionId?: number; options?: { sessionsAllowed?: 'single_session' | 'multiple_simultaneous_sessions_per_idtag' | 'simultaneous_use_of_idtags' | 'multiple_simultaneous_sessions_remotely_and_idtags' }; password?: string; lastUpdatedAt?: string; createdAt?: string; createdBy?: string; receiveNewsAndPromotions?: boolean; partnerInvites?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string }[]; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string }; externalAppData?: Record<string, unknown> } };

export type UserReadResponse = { data?: { id?: string; email?: string; emailVerified?: string; requirePasswordReset?: boolean; firstName?: string; middleName?: string; lastName?: string; phone?: string; country?: string; state?: string; city?: string; postCode?: string; address?: string; vehicleNo?: string; personalId?: string; locale?: string; balance?: number; status?: 'enabled' | 'disabled'; userGroupIds?: number[]; externalId?: string; subscriptionId?: number; options?: { sessionsAllowed?: 'single_session' | 'multiple_simultaneous_sessions_per_idtag' | 'simultaneous_use_of_idtags' | 'multiple_simultaneous_sessions_remotely_and_idtags' }; password?: string; lastUpdatedAt?: string; createdAt?: string; createdBy?: string; receiveNewsAndPromotions?: boolean; partnerInvites?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string }[]; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string }; externalAppData?: Record<string, unknown> } & { amountDue?: number } };

export type UserUpdateResponse = { data?: { id?: string; email?: string; emailVerified?: string; requirePasswordReset?: boolean; firstName?: string; middleName?: string; lastName?: string; phone?: string; country?: string; state?: string; city?: string; postCode?: string; address?: string; vehicleNo?: string; personalId?: string; locale?: string; balance?: number; status?: 'enabled' | 'disabled'; userGroupIds?: number[]; externalId?: string; subscriptionId?: number; options?: { sessionsAllowed?: 'single_session' | 'multiple_simultaneous_sessions_per_idtag' | 'simultaneous_use_of_idtags' | 'multiple_simultaneous_sessions_remotely_and_idtags' }; password?: string; lastUpdatedAt?: string; createdAt?: string; createdBy?: string; receiveNewsAndPromotions?: boolean; partnerInvites?: { id: number; partnerId: number; sendViaEmail?: boolean; email?: string; language?: string; acceptUrl?: string; options?: { allowCorporateAccountBilling?: boolean; limitCorporateAccountBillingToPartnerChargePoints?: boolean; allowAccessToPrivateChargePoints?: boolean }; status: 'pending' | 'sent' | 'accepted'; createdAt: string; acceptedAt?: string; userId?: number; lastUpdatedAt?: string }[]; bankDetails?: { bankIban?: string; bankName?: string; bankAddress?: string; bankCode?: string; bankAccountNumber?: string; bankAccountType?: string }; externalAppData?: Record<string, unknown> } };

export type InvoiceDetailsReadResponse = { requireInvoice: boolean; requireInvoiceLastUpdatedAt?: string; invoiceType: 'individual' | 'company'; individualName?: string; individualPersonalId?: string; individualTaxId?: string; companyName?: string; companyRegNo?: string; companyTaxId?: string; companyTaxAdministrationOfficeName?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; city?: string; postCode?: string; address?: string } | { invoiceRequired: boolean; clientType: 'individual' | 'company'; individual: { name?: string; email?: string; mobilePhoneNumber?: string; taxId?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string }; company: { name?: string; email?: string; mobilePhoneNumber?: string; landlinePhoneNumber?: string; taxId?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string } } | { firstName?: string; lastName?: string; email?: string; phone?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string } | { invoiceType?: 'EInvoice' | 'Company' | 'Donation'; carrierType?: 'Mobile' | 'Citizen' | 'GreenWorld'; loveCode?: string; mobileBarCode?: string; citizenId?: string; companyId?: string; name?: string; email?: string; phone?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string };

export type InvoiceDetailsCreateOrUpdateResponse = { requireInvoice: boolean; requireInvoiceLastUpdatedAt?: string; invoiceType: 'individual' | 'company'; individualName?: string; individualPersonalId?: string; individualTaxId?: string; companyName?: string; companyRegNo?: string; companyTaxId?: string; companyTaxAdministrationOfficeName?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; region?: string; state?: 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FM' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MH' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PW' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VI' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'NSW' | 'VIC' | 'QLD' | 'WA' | 'SA' | 'TAS' | 'ACT' | 'NT' | 'JBT' | 'CX' | 'NF' | 'CC' | 'AQ' | 'CSI' | 'ACI' | 'HM' | 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT' | '81' | '84' | '85' | '67' | '89' | '71' | '76' | '95' | '79' | 'AB' | 'AR' | 'AG' | 'BC' | 'BH' | 'BN' | 'BT' | 'BV' | 'BR' | 'B' | 'BZ' | 'CL' | 'CS' | 'CT' | 'CV' | 'DB' | 'DJ' | 'GL' | 'GR' | 'GJ' | 'HR' | 'HD' | 'IL' | 'IS' | 'IF' | 'MM' | 'MH' | 'MS' | 'NT' | 'OT' | 'PH' | 'SM' | 'SJ' | 'SB' | 'SV' | 'TR' | 'TM' | 'TL' | 'VS' | 'VL' | 'VN'; city?: string; postCode?: string; address?: string } | { invoiceRequired: boolean; clientType: 'individual' | 'company'; individual: { name?: string; email?: string; mobilePhoneNumber?: string; taxId?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string }; company: { name?: string; email?: string; mobilePhoneNumber?: string; landlinePhoneNumber?: string; taxId?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string } } | { firstName?: string; lastName?: string; email?: string; phone?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string } | { invoiceType?: 'EInvoice' | 'Company' | 'Donation'; carrierType?: 'Mobile' | 'Citizen' | 'GreenWorld'; loveCode?: string; mobileBarCode?: string; citizenId?: string; companyId?: string; name?: string; email?: string; phone?: string; country?: 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'XK' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW'; city?: string; postcode?: string; address?: string };

export type PaymentMethodsListingResponse = { data?: { id: string; userId: number; type: 'tokenized' | 'corporate' | 'balance' | 'subscription' | 'wallet' | 'bank_transfer' | 'null'; tokenizedType?: 'card' | 'bank_transfer'; bankTransferType?: 'sepa' | 'pse'; walletType?: 'applepay' | 'googlepay' | 'twint' | 'other'; issuer?: 'visa' | 'mastercard' | 'maestro' | 'amex' | 'paypal' | 'unknown'; name: string; default: boolean; expireYear?: number; expireMonth?: number; lastUpdatedAt?: string; addedAt?: string; removedAt?: string }[]; links?: { first: string; last: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } };

export type PaymentMethodCreateResponse = Record<string, unknown> | { publishableKey: string; clientSecret: string; setupIntentReference: string };

export type PaymentMethodReadResponse = { data?: { id: string; userId: number; type: 'tokenized' | 'corporate' | 'balance' | 'subscription' | 'wallet' | 'bank_transfer' | 'null'; tokenizedType?: 'card' | 'bank_transfer'; bankTransferType?: 'sepa' | 'pse'; walletType?: 'applepay' | 'googlepay' | 'twint' | 'other'; issuer?: 'visa' | 'mastercard' | 'maestro' | 'amex' | 'paypal' | 'unknown'; name: string; default: boolean; expireYear?: number; expireMonth?: number; lastUpdatedAt?: string; addedAt?: string; removedAt?: string } };

export type PaymentMethodUpdateResponse = { data?: { id: string; userId: number; type: 'tokenized' | 'corporate' | 'balance' | 'subscription' | 'wallet' | 'bank_transfer' | 'null'; tokenizedType?: 'card' | 'bank_transfer'; bankTransferType?: 'sepa' | 'pse'; walletType?: 'applepay' | 'googlepay' | 'twint' | 'other'; issuer?: 'visa' | 'mastercard' | 'maestro' | 'amex' | 'paypal' | 'unknown'; name: string; default: boolean; expireYear?: number; expireMonth?: number; lastUpdatedAt?: string; addedAt?: string; removedAt?: string } };

export type ListUtilitiesResponse = { data?: { id: number; name: string; chargePointsCount: number; electricityRatesCount: number; createdAt: string; updatedAt?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type CreateUtilityResponse = { data?: { id: number; name: string; chargePointsCount: number; electricityRatesCount: number; createdAt: string; updatedAt?: string } };

export type GetUtilityResponse = { data?: { id: number; name: string; chargePointsCount: number; electricityRatesCount: number; createdAt: string; updatedAt?: string } };

export type UpdateUtilityResponse = { data?: { id: number; name: string; chargePointsCount: number; electricityRatesCount: number; createdAt: string; updatedAt?: string } };

export type VendorErrorCodesListingResponse = { data?: { id?: number; vendorId: string; errorCode: string; errorCodeDescription?: string; errorCodeCustomerAction?: string }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type VendorErrorCodeCreateResponse = { data?: { id?: number; vendorId: string; errorCode: string; errorCodeDescription?: string; errorCodeCustomerAction?: string } };

export type VendorErrorCodeReadResponse = { data?: { id?: number; vendorId: string; errorCode: string; errorCodeDescription?: string; errorCodeCustomerAction?: string } };

export type VendorErrorCodeUpdateResponse = { data?: { id?: number; vendorId: string; errorCode: string; errorCodeDescription?: string; errorCodeCustomerAction?: string } };

export type VouchersListingResponse = { data?: { id: number; code: string; createdAt: string; type: 'voucher' | 'manual_top_up' | 'auto_top_up' | 'top_up_by_operator' | 'api_top_up' | 'promo_code' | 'subscribe_to_plan'; promoCode?: string; status?: 'enabled' | 'disabled'; expireDate?: string; validityPeriod?: '1 month' | '3 months' | '6 months' | '1 year' | '2 years' | '3 years' | '5 years'; assignBeforeDate?: string; redeemedAt?: string; redeemedByUserId?: number; amount: number; currencyCode: string; description?: string; transactionId?: number; createdByAdminId?: number; lastUpdatedAt?: string; remainingAmount: number; title?: { locale?: string; translation?: string }[] }[]; links?: { first?: string; last?: string; prev?: string; next?: string }; meta?: { current_page?: number; from?: number; last_page?: number; links?: { url?: string; label?: string; active?: boolean }[]; path?: string; per_page?: number; to?: number; total?: number } | { path?: string; per_page?: number; next_cursor?: string; prev_cursor?: string } };

export type VoucherCreateResponse = { data?: { id: number; code: string; createdAt: string; type: 'voucher' | 'manual_top_up' | 'auto_top_up' | 'top_up_by_operator' | 'api_top_up' | 'promo_code' | 'subscribe_to_plan'; promoCode?: string; status?: 'enabled' | 'disabled'; expireDate?: string; validityPeriod?: '1 month' | '3 months' | '6 months' | '1 year' | '2 years' | '3 years' | '5 years'; assignBeforeDate?: string; redeemedAt?: string; redeemedByUserId?: number; amount: number; currencyCode: string; description?: string; transactionId?: number; createdByAdminId?: number; lastUpdatedAt?: string; remainingAmount: number; title?: { locale?: string; translation?: string }[] } };

export type VoucherReadResponse = { data?: { id: number; code: string; createdAt: string; type: 'voucher' | 'manual_top_up' | 'auto_top_up' | 'top_up_by_operator' | 'api_top_up' | 'promo_code' | 'subscribe_to_plan'; promoCode?: string; status?: 'enabled' | 'disabled'; expireDate?: string; validityPeriod?: '1 month' | '3 months' | '6 months' | '1 year' | '2 years' | '3 years' | '5 years'; assignBeforeDate?: string; redeemedAt?: string; redeemedByUserId?: number; amount: number; currencyCode: string; description?: string; transactionId?: number; createdByAdminId?: number; lastUpdatedAt?: string; remainingAmount: number; title?: { locale?: string; translation?: string }[] } };

export type VoucherUpdateResponse = { data?: { id: number; code: string; createdAt: string; type: 'voucher' | 'manual_top_up' | 'auto_top_up' | 'top_up_by_operator' | 'api_top_up' | 'promo_code' | 'subscribe_to_plan'; promoCode?: string; status?: 'enabled' | 'disabled'; expireDate?: string; validityPeriod?: '1 month' | '3 months' | '6 months' | '1 year' | '2 years' | '3 years' | '5 years'; assignBeforeDate?: string; redeemedAt?: string; redeemedByUserId?: number; amount: number; currencyCode: string; description?: string; transactionId?: number; createdByAdminId?: number; lastUpdatedAt?: string; remainingAmount: number; title?: { locale?: string; translation?: string }[] } };