export interface PotreeNamespace { Viewer: new (element: HTMLElement) => PotreeViewerInstance; loadPointCloud: (url: string, name: string, callback?: (e: PotreeLoadEvent) => void) => void; PointSizeType?: { ADAPTIVE?: number }; } export interface PotreeViewerInstance { setEDLEnabled(enabled: boolean): void; setFOV(fov: number): void; setPointBudget(budget: number): void; setBackground(type: string): void; loadGUI(callback?: () => void): void; setLanguage(lang: string): void; scene: { addPointCloud(pointcloud: PotreePointCloud): void }; fitToScreen(): void; } export interface PotreeLoadEvent { pointcloud: PotreePointCloud; } interface PotreePointCloud { material: PotreePointCloudMaterial; } interface PotreePointCloudMaterial { size: number; pointSizeType?: number; } declare global { interface Window { Potree?: PotreeNamespace; } } declare const Potree: PotreeNamespace; export default Potree; export { Potree }; export function loadPotreeAssets(opts?: { baseUrl?: string }): Promise;