import { ChargeTarget, REGIONS } from '../constants'; import { DeepPartial, FullVehicleStatus, RawVehicleStatus, VehicleDayTrip, VehicleLocation, VehicleMonthTrip, VehicleMonthlyReport, VehicleOdometer, VehicleRegisterOptions, VehicleStartOptions, VehicleStatus, VehicleStatusOptions, VehicleTargetSOC, VehicleWindowsOptions } from '../interfaces/common.interfaces'; import { AustraliaController } from '../controllers/australia.controller'; import { EUDatedDriveHistory, EUDriveHistory, EUPOIInformation, historyDrivingPeriod } from '../interfaces/european.interfaces'; import { Vehicle } from './vehicle'; export default class AustraliaVehicle extends Vehicle { vehicleConfig: VehicleRegisterOptions; controller: AustraliaController; region: REGIONS; serverRates: { max: number; current: number; reset?: Date; updatedAt?: Date; }; constructor(vehicleConfig: VehicleRegisterOptions, controller: AustraliaController); /** * * @param config - Vehicle start configuration for the request * @returns Promise * @remarks - not sure if this supports starting ICE vehicles */ start(config: VehicleStartOptions): Promise; stop(): Promise; lock(): Promise; unlock(): Promise; setWindows(config: VehicleWindowsOptions): Promise; fullStatus(input: VehicleStatusOptions): Promise; status(input: VehicleStatusOptions): Promise; odometer(): Promise; location(): Promise; startCharge(): Promise; stopCharge(): Promise; monthlyReport(month?: { year: number; month: number; }): Promise | undefined>; tripInfo(date: { year: number; month: number; day: number; }): Promise[] | undefined>; tripInfo(date?: { year: number; month: number; }): Promise | undefined>; driveHistory(period?: historyDrivingPeriod): Promise>; /** * Warning: Only works on EV */ getChargeTargets(): Promise[] | undefined>; /** * Warning: Only works on EV */ setChargeTargets(limits: { fast: ChargeTarget; slow: ChargeTarget; }): Promise; /** * Define a navigation route * @param poiInformations The list of POIs and waypoint to go through */ setNavigation(poiInformations: EUPOIInformation[]): Promise; private updateRates; }