import type { vec2, vec3 } from '@predy-js/math'; import type { Camera } from './Camera'; export type Triangle = [p0: vec3, p1: vec3, p2: vec3]; export interface Ray { center: vec3; direction: vec3; } export declare function setRayFromCamera(x: number, y: number, camera: Camera): { center: vec3; direction: vec3; }; export declare function intersectRaySphere(out: vec3 | number[], origin: vec3, direction: vec3, center: vec3, radius: number): vec3 | null; export declare function intersectRayBox(out: vec3 | number[], origin: vec3, direction: vec3, center: vec3, size: vec3): vec3 | null; export declare function trianglesFromRect(position: vec3, halfWidth: number, halfHeight: number): Triangle[]; export declare function intersectRayTriangle(out: vec3 | number[], origin: vec3, direction: vec3, triangle: Triangle, backfaceCulling?: boolean): vec3 | null; export declare function dotInTriangle(out: boolean, dot: vec2, triangle: Triangle): boolean;