import * as THREE from 'three';
import { Intersection } from '../intersection';
import type { Camera } from '../../core/camera';
import type { Tile } from './tile';
import { PBMMesh, PBMSkinnedMesh } from '../objects/pbmMesh';
import { PBMPointCloud } from '../objects/pbmPointCloud';
import { PBMGaussianSplattingObject } from '../objects/pbmGaussianSplattingObject';
import type { ResolvedParameterValue } from '../parameter';
import type { ModelScene } from '../model-scene';
import type { Tile3D } from './index';
export declare class TileNode extends THREE.Object3D {
    materials: THREE.Material[];
    animations: THREE.AnimationClip[];
    pbmObjects: (PBMMesh | PBMSkinnedMesh | PBMPointCloud | PBMGaussianSplattingObject)[];
    private contentObject;
    private appearMotion;
    private disposers;
    constructor(name: string, contentObject: THREE.Object3D, animations: THREE.AnimationClip[], disposer?: () => void);
    generateBvhTree(): Promise<this>;
    intersectRaycaster(raycaster: THREE.Raycaster, target?: Intersection[]): Intersection[];
    update(renderer: THREE.WebGLRenderer, camera: Camera, modelScene: ModelScene, tile3d: Tile3D, tile: Tile, parameterValue: ResolvedParameterValue): boolean;
    dispose(): void;
    clone(): this;
}
