import { Geometry } from './../core/Geometry'; import { Material } from './../materials/Material'; import { Loader } from './Loader'; /** * A loader for loading objects in JSON format. */ export class JSONLoader extends Loader { constructor(manager?: LoadingManager); manager: LoadingManager; withCredentials: boolean; load( url: string, onLoad?: (geometry: Geometry, materials: Material[]) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void ): void; setTexturePath(value: string): void; parse( json: any, texturePath?: string ): { geometry: Geometry; materials?: Material[] }; } export const DefaultLoadingManager: LoadingManager; /** * Handles and keeps track of loaded and pending data. */ export class LoadingManager { constructor( onLoad?: () => void, onProgress?: (url: string, loaded: number, total: number) => void, onError?: (url: string) => void ); onStart?: (url: string, loaded: number, total: number) => void; /** * Will be called when load starts. * The default is a function with empty body. */ onLoad: () => void; /** * Will be called while load progresses. * The default is a function with empty body. */ onProgress: (item: any, loaded: number, total: number) => void; /** * Will be called when each element in the scene completes loading. * The default is a function with empty body. */ onError: (url: string) => void; /** * If provided, the callback will be passed each resource URL before a request is sent. * The callback may return the original URL, or a new URL to override loading behavior. * This behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs. * @param callback URL modifier callback. Called with url argument, and must return resolvedURL. */ setURLModifier(callback?: (url: string) => string): void; /** * Given a URL, uses the URL modifier callback (if any) and returns a resolved URL. * If no URL modifier is set, returns the original URL. * @param url the url to load */ resolveURL(url: string): string; itemStart(url: string): void; itemEnd(url: string): void; itemError(url: string): void; }