import * as THREE from 'three';
import type { Model, ViewLayer, Tile } from './model';

declare module 'three' {

  export interface Raycaster {
    /**
     * 只捕获第一个焦点
     */
    firstHitOnly?: boolean;

    /**
     * 对焦点进行筛选
     */
    hitFilter?: (intersect: THREE.Intersection & { model?: Model; viewLayer?: ViewLayer; tile?: Tile; }) => boolean;

    /**
     * 是否由近及远排序， 默认 true
     */
    sortByDistance?: boolean;

    /**
     * 作用楼层
     */
    floorIndex?: number;

    /**
     * 作用楼层
     * @deprecated
     * use floorIndex instead.
     */
    floor?: number | null;
  }

}