@vctrl/hooks
Version:
vctrl/hooks is a React hooks package designed to simplify 3D model loading and management within React applications. It's part of the vectreal-core ecosystem and is primarily used in the vctrl/viewer React component and the official website application.
79 lines (78 loc) • 3.94 kB
TypeScript
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 };