import Vector from '../../../math/Vector';
import Ray from '../../../utils/Ray';
import Steerable from '../../Steerable';
import RayConfigurationBase from './RayConfigurationBase';
/**
* As the name suggests, a {@code SingleRayConfiguration} uses just one ray cast.
*
* This configuration is useful in concave environments but grazes convex obstacles. It is not susceptible to the corner trap, though.
*
* @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface
*
* @author davebaol
*/
declare class SingleRayConfiguration> extends RayConfigurationBase {
private length;
/**
* Creates a {@code SingleRayConfiguration} for the given owner where the ray has the specified length.
* @param owner the owner of this configuration
* @param length the length of the ray
*/
constructor(owner: Steerable, length: number);
updateRays(): Ray[];
/** Returns the length of the ray. */
getLength(): number;
/** Sets the length of the ray. */
setLength(length: number): void;
}
export default SingleRayConfiguration;