import { Fragment, FragmentsGroup } from "bim-fragment"; import * as THREE from "three"; import { Component } from "../../base-types/component"; import { UIElement } from "../../base-types/ui-element"; import { Disposable, Event, UI } from "../../base-types"; import { Components } from "../../core/Components"; import { Button, FloatingWindow } from "../../ui"; /** * Object that can efficiently load binary files that contain * [fragment geometry](https://github.com/ThatOpen/engine_fragment). */ export declare class FragmentManager extends Component implements Disposable, UI { static readonly uuid: "fef46874-46a3-461b-8c44-2922ab77c806"; /** {@link Disposable.onDisposed} */ readonly onDisposed: Event; /** {@link Component.enabled} */ enabled: boolean; /** All the created [fragments](https://github.com/ThatOpen/engine_fragment). */ list: { [guid: string]: Fragment; }; groups: FragmentsGroup[]; baseCoordinationModel: string; readonly onFragmentsLoaded: Event; readonly onFragmentsDisposed: Event<{ groupID: string; fragmentIDs: string[]; }>; uiElement: UIElement<{ main: Button; window: FloatingWindow; }>; commands: Button[]; private _loader; private _cards; /** The list of meshes of the created fragments. */ get meshes(): THREE.Mesh, THREE.Material | THREE.Material[], THREE.Object3DEventMap>[]; constructor(components: Components); /** {@link Component.get} */ get(): Fragment[]; /** {@link Component.get} */ dispose(disposeUI?: boolean): Promise; disposeGroup(group: FragmentsGroup): Promise; /** Disposes all existing fragments */ reset(): void; /** * Loads one or many fragments into the scene. * @param data - the bytes containing the data for the fragments to load. * @param coordinate - whether this fragmentsgroup should be federated with the others. * @returns the list of IDs of the loaded fragments. */ load(data: Uint8Array, coordinate?: boolean): Promise; /** * Export the specified fragments. * @param group - the fragments group to be exported. * @returns the exported data as binary buffer. */ export(group: FragmentsGroup): Uint8Array; updateWindow(): Promise; coordinate(models?: FragmentsGroup[]): void; private setupUI; }