import Vector from '../../../math/Vector';
import Ray from '../../../utils/Ray';
import Steerable from '../../Steerable';
import RayConfigurationBase from './RayConfigurationBase';
/**
* A {@code CentralRayWithWhiskersConfiguration} uses a long central ray and two shorter whiskers.
*
* A central ray with short whiskers is often the best initial configuration to try but can make it impossible for the character
* to move down tight passages. Also, it is still susceptible to the corner trap, far less than the parallel configuration though.
*
* @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface
*
* @author davebaol
*/
declare class CentralRayWithWhiskersConfiguration> extends RayConfigurationBase {
private rayLength;
private whiskerLength;
private whiskerAngle;
/**
* Creates a {@code CentralRayWithWhiskersConfiguration} for the given owner where the central ray has the specified length and
* the two whiskers have the specified length and angle.
* @param owner the owner of this configuration
* @param rayLength the length of the central ray
* @param whiskerLength the length of the two whiskers (usually shorter than the central ray)
* @param whiskerAngle the angle in radians of the whiskers from the central ray
*/
constructor(owner: Steerable, rayLength: number, whiskerLength: number, whiskerAngle: number);
updateRays(): Ray[];
/** Returns the length of the central ray. */
getRayLength(): number;
/** Sets the length of the central ray. */
setRayLength(rayLength: number): void;
/** Returns the length of the two whiskers. */
getWhiskerLength(): number;
/** Sets the length of the two whiskers. */
setWhiskerLength(whiskerLength: number): void;
/** Returns the angle in radians of the whiskers from the central ray. */
getWhiskerAngle(): number;
/** Sets the angle in radians of the whiskers from the central ray. */
setWhiskerAngle(whiskerAngle: number): void;
}
export default CentralRayWithWhiskersConfiguration;