import { Object3D } from 'three';
import { dedup, quantize, normals, textureCompress } from '@gltf-transform/functions';
import { ModelSize } from './types';
/**
 * Custom React hook for optimizing Three.js models using glTF-Transform.
 *
 * This hook provides functions to load, optimize, and retrieve Three.js models.
 * Optimizations include deduplication, quantization, and simplification of model meshes and textures.
 *
 * @returns An object containing functions to interact with the model optimizer.
 */
declare const useOptimizeModel: () => {
    load: (model: Object3D) => Promise<void>;
    getModel: () => Promise<Uint8Array | null>;
    getSize: () => ModelSize | null;
    report: import('@gltf-transform/functions').InspectReport | null;
    simplifyOptimization: (options?: {
        ratio?: number;
        error?: number;
    }) => Promise<void>;
    dedupOptimization: (options?: Parameters<typeof dedup>[0]) => Promise<void>;
    quantizeOptimization: (options?: Parameters<typeof quantize>[0]) => Promise<void>;
    normalsOptimization: (options?: Parameters<typeof normals>[0]) => Promise<void>;
    texturesOptimization: (options?: Parameters<typeof textureCompress>[0]) => Promise<void>;
    reset: () => void;
    error: Error | null;
    loading: boolean;
};
export default useOptimizeModel;
