import { REGIONS, ChargeTarget } from '../constants'; import { VehicleStartOptions, VehicleLocation, VehicleRegisterOptions, VehicleStatus, VehicleOdometer, VehicleStatusOptions, RawVehicleStatus, FullVehicleStatus, VehicleInfo, VehicleFeatureEntry } from '../interfaces/common.interfaces'; import { Vehicle } from './vehicle'; import { CanadianController } from '../controllers/canadian.controller'; export interface CanadianInfo { vehicle: VehicleInfo; features: { seatHeatVent: { drvSeatHeatOption: number; astSeatHeatOption: number; rlSeatHeatOption: number; rrSeatHeatOption: number; }; hvacTempType: number; targetMinSoc: number; strgWhlHeatingOption: number; }; featuresModel: { features: [VehicleFeatureEntry]; }; status: RawVehicleStatus; } export default class CanadianVehicle extends Vehicle { vehicleConfig: VehicleRegisterOptions; controller: CanadianController; region: REGIONS; private timeOffset; private _info; constructor(vehicleConfig: VehicleRegisterOptions, controller: CanadianController); fullStatus(): Promise; status(input: VehicleStatusOptions): Promise; lock(): Promise; unlock(): Promise; start(startConfig: VehicleStartOptions): Promise; stop(): Promise; lights(withHorn?: boolean): Promise; /** * Warning only works on EV vehicles * @returns */ stopCharge(): Promise; /** * Warning only works on EV vehicles * @returns */ startCharge(): Promise; /** * Warning only works on EV vehicles * @param limits * @returns Promise */ setChargeTargets(limits: { fast: ChargeTarget; slow: ChargeTarget; }): Promise; odometer(): Promise; location(): Promise; private getPreAuth; private request; private setInfo; }