import type { ClearChargingProfileRequest, SetChargingProfileRequest } from './types.js';
import type { ChargingSchedule, ChargingContext, MaybeChargingSchedule } from '../common/chargingmanager/utils.js';
import type { ChargingRateUnit, NumberOfPhases, ChargingLimits } from '../common/utils.js';
import type { Models } from '../common/models.js';
import { AbstractChargingManager } from '../common/chargingmanager/chargingmanager.js';
export type getCompositeProfileOpts = Pick<SetChargingProfileRequest['csChargingProfiles'], 'stackLevel' | 'chargingProfileId' | 'chargingProfilePurpose'>;
export declare class ChargingManager extends AbstractChargingManager<SetChargingProfileRequest, ClearChargingProfileRequest> {
    protected _getScheduleFromProfile(context: ChargingContext, profile: SetChargingProfileRequest, fromDate: Date, toDate: Date, unit: ChargingRateUnit): MaybeChargingSchedule;
    setChargingProfile(request: SetChargingProfileRequest): void;
    clearChargingProfile(request: ClearChargingProfileRequest): void;
    getConnectorSchedule(fromDate: Date, toDate: Date, connectorId: number, unit: ChargingRateUnit, model: Models.ChargingSession): ChargingSchedule;
    getConnectorLimitsAtDate(atDate: Date, connectorId: number, unit: ChargingRateUnit, model: Models.ChargingSession): ChargingLimits;
    getConnectorCompositeSchedule(fromDate: Date, toDate: Date, chargerId: number, model: Models.ChargingSession): {
        status: "Accepted";
        connectorId: number;
        chargingSchedule: {
            startSchedule: string;
            duration: number;
            chargingRateUnit: "W";
            chargingSchedulePeriod: {
                startPeriod: number;
                limit: number;
                numberPhases: NumberOfPhases;
            }[];
        };
    };
    getConnectorCompositeProfile(fromDate: Date, toDate: Date, connectorId: number, model: Models.ChargingSession, opts: getCompositeProfileOpts): SetChargingProfileRequest;
}
