import type { BootstrapConfig, ChargingLimitSourceEnumType, ChargingProfilePurposeEnumType } from '@citrineos/base'; import { CrudRepository, OCPP2_0_1 } from '@citrineos/base'; import { SequelizeRepository } from './Base.js'; import type { IChargingProfileRepository } from '../../../interfaces/index.js'; import type { ChargingProfileInput, CompositeScheduleInput } from '../mapper/2.0.1/ChargingProfileMapper.js'; import { ChargingNeeds, ChargingProfile, ChargingSchedule, CompositeSchedule, EvseType, SalesTariff, Transaction } from '../model/index.js'; import { Sequelize } from 'sequelize-typescript'; import type { ILogObj } from 'tslog'; import { Logger } from 'tslog'; export declare class SequelizeChargingProfileRepository extends SequelizeRepository implements IChargingProfileRepository { chargingNeeds: CrudRepository; chargingSchedule: CrudRepository; salesTariff: CrudRepository; transaction: CrudRepository; evse: CrudRepository; compositeSchedule: CrudRepository; constructor(config: BootstrapConfig, logger?: Logger, sequelizeInstance?: Sequelize, chargingNeeds?: CrudRepository, chargingSchedule?: CrudRepository, salesTariff?: CrudRepository, transaction?: CrudRepository, evse?: CrudRepository, compositeSchedule?: CrudRepository); createOrUpdateChargingProfile(tenantId: number, chargingProfile: ChargingProfileInput, stationId: string, evseId?: number | null, chargingLimitSource?: ChargingLimitSourceEnumType, isActive?: boolean): Promise; createChargingNeeds(tenantId: number, chargingNeedsReq: OCPP2_0_1.NotifyEVChargingNeedsRequest, stationId: string): Promise; findChargingNeedsByEvseDBIdAndTransactionDBId(tenantId: number, evseDBId: number, transactionDataBaseId: number | null): Promise; createCompositeSchedule(tenantId: number, compositeSchedule: CompositeScheduleInput, stationId: string): Promise; getNextChargingScheduleId(tenantId: number, stationId: string): Promise; getNextChargingProfileId(tenantId: number, stationId: string): Promise; getNextStackLevel(tenantId: number, stationId: string, transactionDatabaseId: number | null, profilePurpose: ChargingProfilePurposeEnumType): Promise; }