import Vector from '../math/Vector'; import Location from '../utils/Location'; import Steerable from './Steerable'; /** * An adapter class for {@link Steerable}. You can derive from this and only override what you are interested in. For example, * this comes in handy when you have to create on the fly a target for a particular behavior. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare class SteerableAdapter> implements Steerable { getZeroLinearSpeedThreshold(): number; setZeroLinearSpeedThreshold(value: number): void; getMaxLinearSpeed(): number; setMaxLinearSpeed(maxLinearSpeed: number): void; getMaxLinearAcceleration(): number; setMaxLinearAcceleration(maxLinearAcceleration: number): void; getMaxAngularSpeed(): number; setMaxAngularSpeed(maxAngularSpeed: number): void; getMaxAngularAcceleration(): number; setMaxAngularAcceleration(maxAngularAcceleration: number): void; getPosition(): T; getOrientation(): number; setOrientation(orientation: number): void; getLinearVelocity(): T; getAngularVelocity(): number; getBoundingRadius(): number; isTagged(): boolean; setTagged(tagged: boolean): void; newLocation(): Location; vectorToAngle(vector: T): number; angleToVector(outVector: T, angle: number): T; } export default SteerableAdapter;