import { DrawingID, ScgObject, ObjectID, SelectedItem } from '@buerli.io/core'; import { ThreeEvent } from '@react-three/fiber'; /** * Implies the following data structure: * data: { * object: ScgObject * } */ export declare const TreeObjScope = "TreeObjScope"; export declare const createTreeObjSelItem: (productId: ObjectID, object: ScgObject) => SelectedItem; export declare function useIsGHovered(drawingId: DrawingID, objId: ObjectID): boolean; export declare function useIsGSelected(drawingId: DrawingID, objId: ObjectID): boolean; export declare function useIsSHovered(drawingId: DrawingID, objId: ObjectID): boolean; /** * Returns true if object in tree is currently selected in active selection. * * This hook leads to re-rendering of each element uses it. * It happens because it uses items of the active selection, * and it's not possible to check if objId is selected inside of useDrawing selector * because of performance reasone (it requires traversing through all of selectedItems). * * @param drawingId * @param objId * @returns */ export declare function useIsSSelected(drawingId: DrawingID, objId: ObjectID): boolean; export declare function useTreeObjInteraction(drawingId: DrawingID, objId: ObjectID): { isGHovered: boolean; isGSelected: boolean; isSHovered: boolean; isSSelected: boolean; handlers: { onClick: (e: MouseEvent | ThreeEvent) => void; onPointerOut: (e: PointerEvent | ThreeEvent) => void; onPointerOver: (e: PointerEvent | ThreeEvent) => void; }; };