import type { ChargingRateUnit, NumberOfPhases, PhaseVoltage } from './utils.js';
export declare namespace Models {
    abstract class EnergyExchange {
        abstract ampsToWatts(value: number, numberOfPhases: NumberOfPhases): number;
        abstract wattsToAmps(value: number, numberOfPhases: NumberOfPhases): number;
        convert(value: number, source: ChargingRateUnit, target: ChargingRateUnit, numberOfPhases: NumberOfPhases): number;
    }
    abstract class ChargingStation extends EnergyExchange {
        abstract ampsToWatts(value: number, numberOfPhases: NumberOfPhases): number;
        abstract wattsToAmps(value: number, numberOfPhases: NumberOfPhases): number;
    }
    class ACChargingStation extends ChargingStation {
        #private;
        constructor(phaseVoltage: PhaseVoltage);
        ampsToWatts(value: number, numberOfPhases?: NumberOfPhases): number;
        wattsToAmps(value: number, numberOfPhases?: NumberOfPhases): number;
    }
    abstract class ChargingSession extends EnergyExchange {
        abstract ampsToWatts(value: number, numberOfPhases: NumberOfPhases): number;
        abstract wattsToAmps(value: number, numberOfPhases: NumberOfPhases): number;
    }
    class ACChargingSession extends ChargingSession {
        #private;
        constructor(phaseVoltage: PhaseVoltage);
        ampsToWatts(value: number, numberOfPhases?: NumberOfPhases): number;
        wattsToAmps(value: number, numberOfPhases?: NumberOfPhases): number;
    }
    class DCChargingSession extends ChargingSession {
        #private;
        constructor(batteryVoltage: number);
        ampsToWatts(value: number): number;
        wattsToAmps(value: number): number;
    }
}
