import {
	Loader,
	LoadingManager,
	Material,
	Object3D
} from '../../../src/Three';

export interface LWO {
	materials: Material[];
	meshes: Object3D[];
}

export interface LWOLoaderParameters {

	/**
	* Base content delivery folder path, use when it differs from Lightwave default structure
	*/
	resourcePath?: string;

}

export class LWOLoader extends Loader {

	constructor( manager?: LoadingManager, parameters?: LWOLoaderParameters );

	load( url: string, onLoad: ( lwo: LWO ) => void, onProgress?: ( event: ProgressEvent ) => void, onError?: ( event: ErrorEvent ) => void ) : void;
	loadAsync( url: string, onProgress?: ( event: ProgressEvent ) => void ): Promise<LWO>;
	parse( data: ArrayBuffer, path: string, modelName: string ): LWO;

}
