import { Point, Vector3D } from '@awayjs/core';
import { PickGroup } from '../PickGroup';
import { ContainerNode } from '../partition/ContainerNode';
import { INode } from '../partition/INode';
import { IPickable } from '../base/IPickable';
/**
 * Value object ___ for a picking collision returned by a picking collider. Created as unique objects on display objects
 *
 * @see away.base.DisplayObject#pickingCollision
 *
 * @class away.pick.PickingCollision
 */
export declare class PickingCollision {
    /**
     *
     */
    rootNode: INode;
    /**
     * The container to which this collision object belongs.
     */
    containerNode: ContainerNode;
    /**
     * The pickGroup to which this collision object belongs.
     */
    pickGroup: PickGroup;
    /**
     * The pickable associated with a collision.
     */
    pickable: IPickable;
    /**
     * The local position of the collision on the renderable's surface.
     */
    position: Vector3D;
    /**
     * The local normal vector at the position of the collision.
     */
    normal: Vector3D;
    /**
     * The uv coordinate at the position of the collision.
     */
    uv: Point;
    /**
     * The index of the element where the collision took place.
     */
    elementIndex: number;
    /**
     * The starting position of the colliding ray in local coordinates.
     */
    rayPosition: Vector3D;
    /**
     * The direction of the colliding ray in local coordinates.
     */
    rayDirection: Vector3D;
    /**
     * The starting position of the colliding ray in scene coordinates.
     */
    globalRayPosition: Vector3D;
    /**
     * The direction of the colliding ray in scene coordinates.
     */
    globalRayDirection: Vector3D;
    /**
     * Determines if the ray position is contained within the entity bounds.
     */
    rayOriginIsInsideBounds: boolean;
    /**
     * The distance along the ray from the starting position to the calculated intersection entry point with the entity.
     */
    rayEntryDistance: number;
    /**
     * Creates a new <code>PickingCollision</code> object.
     *
     * @param entity The entity to which this collision object belongs.
     */
    constructor(containerNode: ContainerNode, pickGroup: PickGroup);
}
//# sourceMappingURL=PickingCollision.d.ts.map