import { BufferGeometry, Object3D, Quaternion } from 'three';
import { IGeometry, IMaterial, IObject3D, ITexture } from '../../core';
/**
 * Convert geometry to BufferGeometry with indexed attributes.
 */
export declare function toIndexedGeometry<T extends BufferGeometry<any, any> = BufferGeometry<any, any>>(geometry: T, tolerance?: number): T;
export declare function generateUUID(): string;
/**
 * Check if a single or multiple object/geometry/material/texture is in the scene.
 * This is used internally to check if a material is used by any object in the scene, and if not, it can be disposed.
 * @param sceneObj
 */
export declare function isInScene(...sceneObj: (IGeometry | IMaterial | IObject3D | ITexture)[]): boolean;
/**
 * Convert a world-space quaternion to local-space quaternion.
 * https://github.com/mrdoob/three.js/pull/20243
 * @param object
 * @param quaternion
 * @param _q
 */
export declare function worldToLocalQuaternion(object: Object3D, quaternion: Quaternion, _q?: Quaternion): Quaternion;
/**
 * Convert a local-space quaternion to world-space quaternion.
 * https://github.com/mrdoob/three.js/pull/20243
 * @param object
 * @param quaternion
 * @param _q
 */
export declare function localToWorldQuaternion(object: Object3D, quaternion: Quaternion, _q?: Quaternion): Quaternion;
/**
 * Check if a texture/map exists at a given property of an object/material.
 * @param prop
 * @param object
 * @param maps
 * @param deep
 */
export declare function checkTexMapReference(prop: string, object: IObject3D | IMaterial | IObject3D['userData'] | IMaterial['userData'], maps: Map<string, ITexture>, deep?: boolean): void;
//# sourceMappingURL=../../src/three/utils/misc.d.ts.map