import Vector from '../../../math/Vector';
import Ray from '../../../utils/Ray';
import Steerable from '../../Steerable';
import RayConfigurationBase from './RayConfigurationBase';
/**
* A {@code ParallelSideRayConfiguration} uses two rays parallel to the direction of motion. The rays have the same length and
* opposite side offset.
*
* The parallel configuration works well in areas where corners are highly obtuse but is very susceptible to the corner trap.
*
* @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface
*
* @author davebaol
*/
declare class ParallelSideRayConfiguration> extends RayConfigurationBase {
private length;
private sideOffset;
/**
* Creates a {@code ParallelSideRayConfiguration} for the given owner where the two rays have the specified length and side
* offset.
* @param owner the owner of this ray configuration
* @param length the length of the rays.
* @param sideOffset the side offset of the rays.
*/
constructor(owner: Steerable, length: number, sideOffset: number);
updateRays(): Ray[];
/** Returns the length of the rays. */
getLength(): number;
/** Sets the length of the rays. */
setLength(length: number): void;
/** Returns the side offset of the rays. */
getSideOffset(): number;
/** Sets the side offset of the rays. */
setSideOffset(sideOffset: number): void;
}
export default ParallelSideRayConfiguration;