import type { BootstrapConfig, MeterValueDto } from '@citrineos/base'; import { CrudRepository, OCPP1_6, OCPP2_0_1 } from '@citrineos/base'; import { Sequelize } from 'sequelize-typescript'; import type { ILogObj } from 'tslog'; import { Logger } from 'tslog'; import type { IChargingStationSequenceRepository, ITransactionEventRepository } from '../../../interfaces/index.js'; import { ChargingStation, Connector, Evse, MeterValue, StartTransaction, StopTransaction, Transaction, TransactionEvent } from '../model/index.js'; import { SequelizeRepository } from './Base.js'; export declare class SequelizeTransactionEventRepository extends SequelizeRepository implements ITransactionEventRepository { transaction: CrudRepository; evse: CrudRepository; station: CrudRepository; meterValue: CrudRepository; startTransaction: CrudRepository; stopTransaction: CrudRepository; connector: CrudRepository; chargingStationSequence: IChargingStationSequenceRepository; constructor(config: BootstrapConfig, logger?: Logger, namespace?: string, sequelizeInstance?: Sequelize, transaction?: CrudRepository, station?: CrudRepository, evse?: CrudRepository, meterValue?: CrudRepository, startTransaction?: CrudRepository, stopTransaction?: CrudRepository, connector?: CrudRepository, chargingStationSequence?: IChargingStationSequenceRepository); /** * @param value TransactionEventRequest received from charging station. Will be used to create TransactionEvent, * MeterValues, and either create or update Transaction. IdTokens (and associated AdditionalInfo) and EVSEs are * assumed to already exist and will not be created as part of this call. * * @param stationId StationId of charging station which sent TransactionEventRequest. * * @returns Saved TransactionEvent */ createOrUpdateTransactionByTransactionEventAndStationId(tenantId: number, value: OCPP2_0_1.TransactionEventRequest, stationId: string): Promise; readAllByStationIdAndTransactionId(tenantId: number, stationId: string, transactionId: string): Promise; readTransactionByStationIdAndTransactionId(tenantId: number, stationId: string, transactionId: string): Promise; readAllTransactionsByStationIdAndEvseAndChargingStates(tenantId: number, stationId: string, evse?: OCPP2_0_1.EVSEType, chargingStates?: OCPP2_0_1.ChargingStateEnumType[] | undefined): Promise; readAllActiveTransactionsByAuthorizationId(tenantId: number, authorizationId: number): Promise; readAllMeterValuesByTransactionDataBaseId(tenantId: number, transactionDataBaseId: number): Promise; findByTransactionId(tenantId: number, transactionId: string): Promise; getTransactions(tenantId: number, dateFrom?: Date, dateTo?: Date, offset?: number, limit?: number): Promise; getTransactionsCount(tenantId: number, dateFrom?: Date, dateTo?: Date): Promise; readAllTransactionsByQuery(tenantId: number, query: object): Promise; getEvseIdsWithActiveTransactionByStationId(tenantId: number, stationId: string): Promise; getActiveTransactionByStationIdAndEvseId(tenantId: number, stationId: string, evseId: number): Promise; createMeterValue(tenantId: number, meterValue: OCPP2_0_1.MeterValueType, transactionDatabaseId?: number | null, transactionId?: string | null, tariffId?: number | null): Promise; updateTransactionTotalCostById(tenantId: number, totalCost: number, id: number): Promise; updateTransactionByMeterValues(tenantId: number, meterValues: MeterValueDto[], stationId: string, transactionId: number): Promise; createTransactionByStartTransaction(tenantId: number, request: OCPP1_6.StartTransactionRequest, stationId: string): Promise; createStopTransaction(tenantId: number, transactionDatabaseId: number, stationId: string, meterStop: number, timestamp: Date, meterValues: MeterValueDto[], reason?: string): Promise; updateTransactionByStationIdAndTransactionId(tenantId: number, transaction: Partial, transactionId: string, stationId: string): Promise; deactivateActiveTransactionsByStationIdAndEvseId(tenantId: number, stationId: string, evseId: number, excludeTransactionId: string): Promise; }