import { Texture, TextureDataType } from 'three';
import { BaseNodeType } from '../../../engine/nodes/_Base';
import { BaseTextureLoader } from './_BaseTextureLoader';
export interface TextureLoadOptions {
    tdataType: boolean;
    dataType: TextureDataType;
}
type OnSuccess = (o: Texture) => void;
type OnProgress = (n: ProgressEvent<EventTarget>) => void;
type OnError = (event: ErrorEvent) => void;
export declare abstract class BaseImageLoader {
    abstract load: (url: string, onSuccess: OnSuccess, onProgress?: OnProgress, onError?: OnError) => void;
}
export declare abstract class BaseCoreImageLoader extends BaseTextureLoader {
    protected _node: BaseNodeType;
    constructor(_url: string, _node: BaseNodeType);
    loadImage(options: TextureLoadOptions): Promise<Texture>;
    protected abstract _getLoader(options: TextureLoadOptions): Promise<BaseImageLoader>;
}
export {};
