import { CyclingModeConfig, Settings, UpdateRequest } from './types.js'; import { IncyclistBikeData, IAdapter } from "../types/index.js"; import { CyclingModeBase } from './base.js'; export default class PowerBasedCyclingModeBase extends CyclingModeBase { data: IncyclistBikeData; prevUpdateTS: number; prevRequest: UpdateRequest | undefined; protected static config: CyclingModeConfig; constructor(adapter: IAdapter, props?: Settings); getData(): Partial; getSlope(): number; getWeight(): number; getTimeSinceLastUpdate(): number; checkForResetOrEmpty(request: UpdateRequest): UpdateRequest | undefined; protected checkForTempPowerAdjustments(request: UpdateRequest): void; protected checkRefresh(request: UpdateRequest, newRequest: UpdateRequest): void; protected checkTargetPowerSet(request: UpdateRequest, newRequest: UpdateRequest): void; protected checkSlope(request: UpdateRequest): void; protected checkEmptyRequest(newRequest: UpdateRequest): void; protected checkMinPower(request: UpdateRequest, newRequest: UpdateRequest): void; protected checkMaxPower(request: UpdateRequest, newRequest: UpdateRequest): void; calculateSpeedAndDistance(power: number, slope: number, m: number, t: number, props?: {}): { speed: number; distance: number; }; protected updateSpeedAndDistance(power: number, slope: any, bikeType: any, data: IncyclistBikeData, prevData: any): number; protected getCalcBasics(bikeData: IncyclistBikeData): { data: IncyclistBikeData; prevData: any; prevRequest: UpdateRequest; bikeType: any; slope: any; }; protected applyCadenceFixes(): boolean; copyBikeData(data: IncyclistBikeData, bikeData: IncyclistBikeData): IncyclistBikeData; calculatePowerAndDistance(speed: number, slope: number, m: number, t: number, props?: {}): { power: number; distance: number; }; getBikeInitRequest(): UpdateRequest; sendBikeUpdate(incoming: UpdateRequest): UpdateRequest; updateData(bikeData: IncyclistBikeData, log?: boolean): IncyclistBikeData; }