import ICyclingMode, { CyclingModeConfig, CyclingModeProperyType, UpdateRequest } from "./types.js"; import PowerBasedCyclingModeBase from "./power-base.js"; import { IAdapter, IncyclistBikeData } from "../types/index.js"; export type VirtshiftMode = 'Disabled' | 'SlopeDelta' | 'Adapter' | 'Simulated'; export default class SmartTrainerCyclingMode extends PowerBasedCyclingModeBase implements ICyclingMode { protected static config: { name: string; isSIM: boolean; description: string; properties: ({ key: string; name: string; description: string; type: CyclingModeProperyType; options: string[]; default: string; min?: undefined; max?: undefined; } | { key: string; name: string; description: string; type: CyclingModeProperyType; default: number; min: number; max: number; options?: undefined; })[]; }; protected gearDelta: number; protected gear?: number; protected tsStart?: number; protected simPower?: number; protected simSlope?: number; protected maintainPower?: number; protected prevData?: any; protected prevEkin?: number; protected prevSimPower?: number; protected readonly gearRatios: number[]; constructor(adapter: IAdapter, props?: any); getBikeInitRequest(): UpdateRequest; checkForResetOrEmpty(request: UpdateRequest): UpdateRequest | undefined; resetConfig(): void; getConfig(): CyclingModeConfig; protected checkSlopeNoShiftig(request: UpdateRequest, newRequest?: UpdateRequest): void; protected checkSlopeWithAdapterShifting(request: UpdateRequest, newRequest?: UpdateRequest): void; protected getSlopeDelta(): number; protected checkSlopeWithSlopeDelta(request: UpdateRequest, newRequest?: UpdateRequest): void; protected checkSlopeWithSimulatedShifting(request: UpdateRequest, newRequest?: UpdateRequest): void; checkSlope(request: UpdateRequest, newRequest?: UpdateRequest): void; checkCadenceChange(request: UpdateRequest, newRequest?: UpdateRequest): void; calculateSimulatedPower(changed?: string): void; checkGearChange(request: UpdateRequest, newRequest?: UpdateRequest): void; protected verifySimPower(): void; protected checkEmptyRequest(newRequest: UpdateRequest): void; protected getVirtualShiftMode(): VirtshiftMode; updateData(bikeData: IncyclistBikeData, log?: boolean): IncyclistBikeData; getData(): Partial; protected updateRequired(request?: UpdateRequest): boolean; sendBikeUpdate(incoming: UpdateRequest): UpdateRequest; protected getGearString(): string | undefined; protected getFeatureToogle(): import("../features/features.js").FeatureToggle; }