import { useOptimizeModel } from '../use-optimize-model';
interface ModelProviderProps extends React.PropsWithChildren {
    optimizer?: ReturnType<typeof useOptimizeModel>;
}
declare const ModelContext: import('react').Context<{
    on: <T extends import('./types').EventTypes>(event: T, handler?: import('./types').EventHandler<T>) => void;
    off: <T extends import('./types').EventTypes>(event: T, handler?: import('./types').EventHandler<T>) => void;
    load: (filesOrDirectories: import('./types').InputFileOrDirectory) => Promise<void>;
    reset: () => void;
    optimize: {
        simplifyOptimization: () => void;
        dedupOptimization: () => void;
        quantizeOptimization: () => void;
        normalsOptimization: () => void;
        texturesCompressOptimization: () => void;
        getSize: () => void;
        reset: () => void;
        report: null;
        error: null;
        loading: boolean;
    } | {
        simplifyOptimization: (options?: {
            ratio?: number;
            error?: number;
        } | undefined) => Promise<void>;
        dedupOptimization: (options?: import('@gltf-transform/functions').DedupOptions | undefined) => Promise<void>;
        quantizeOptimization: (options?: import('@gltf-transform/functions').QuantizeOptions | undefined) => Promise<void>;
        normalsOptimization: (options?: import('@gltf-transform/functions').NormalsOptions | undefined) => Promise<void>;
        texturesCompressOptimization: (options?: import('@gltf-transform/functions').TextureCompressOptions | undefined) => Promise<void>;
        getSize: () => import('../use-optimize-model/types').ModelSize | null;
        reset: () => void;
        report: import('@gltf-transform/functions').InspectReport | null;
        error: Error | null;
        loading: boolean;
    };
    file: import('./types').ModelFile | null;
    isFileLoading: boolean;
    progress: number;
    supportedFileTypes: import('./types').ModelFileTypes[];
}>;
declare const ModelProvider: ({ children, optimizer }: ModelProviderProps) => import("react/jsx-runtime").JSX.Element;
declare const useModelContext: () => {
    on: <T extends import('./types').EventTypes>(event: T, handler?: import('./types').EventHandler<T>) => void;
    off: <T extends import('./types').EventTypes>(event: T, handler?: import('./types').EventHandler<T>) => void;
    load: (filesOrDirectories: import('./types').InputFileOrDirectory) => Promise<void>;
    reset: () => void;
    optimize: {
        simplifyOptimization: () => void;
        dedupOptimization: () => void;
        quantizeOptimization: () => void;
        normalsOptimization: () => void;
        texturesCompressOptimization: () => void;
        getSize: () => void;
        reset: () => void;
        report: null;
        error: null;
        loading: boolean;
    } | {
        simplifyOptimization: (options?: {
            ratio?: number;
            error?: number;
        } | undefined) => Promise<void>;
        dedupOptimization: (options?: import('@gltf-transform/functions').DedupOptions | undefined) => Promise<void>;
        quantizeOptimization: (options?: import('@gltf-transform/functions').QuantizeOptions | undefined) => Promise<void>;
        normalsOptimization: (options?: import('@gltf-transform/functions').NormalsOptions | undefined) => Promise<void>;
        texturesCompressOptimization: (options?: import('@gltf-transform/functions').TextureCompressOptions | undefined) => Promise<void>;
        getSize: () => import('../use-optimize-model/types').ModelSize | null;
        reset: () => void;
        report: import('@gltf-transform/functions').InspectReport | null;
        error: Error | null;
        loading: boolean;
    };
    file: import('./types').ModelFile | null;
    isFileLoading: boolean;
    progress: number;
    supportedFileTypes: import('./types').ModelFileTypes[];
};
export { ModelContext, ModelProvider, useModelContext };
