import { URLRequest } from '../net/URLRequest';
import { EventDispatcher } from '../events/EventDispatcher';
/**
 * The URLLoader is used to load a single file, as part of a resource.
 *
 * While URLLoader can be used directly, e.g. to create a third-party asset
 * management system, it's recommended to use any of the classes Loader3D, Loader
 * and AssetLibrary instead in most cases.
 *
 * @see Loader
 * @see away.library.AssetLibrary
 */
export declare class URLLoader extends EventDispatcher {
    private _XHR;
    private _status;
    private _bytesLoaded;
    private _bytesTotal;
    private _dataFormat;
    private _loadError;
    private _request;
    private _data;
    private _loadStartEvent;
    private _loadErrorEvent;
    private _loadCompleteEvent;
    private _progressEvent;
    private _statusEvent;
    /**
     * Creates a new URLLoader object.
     */
    constructor();
    /**
     *
     */
    get url(): string;
    /**
     *
     */
    get data(): any;
    /**
     *
     * URLLoaderDataFormat.BINARY
     * URLLoaderDataFormat.TEXT
     * URLLoaderDataFormat.VARIABLES
     *
     * @param format
     */
    set dataFormat(format: string);
    get dataFormat(): string;
    /**
     *
     * @returns {number}
     */
    get bytesLoaded(): number;
    /**
     *
     * @returns {number}
     */
    get bytesTotal(): number;
    /**
     * Load a resource from a file.
     *
     * @param request The URLRequest object containing the URL of the object to be loaded.
     */
    load(request: URLRequest): void;
    isSupported(): boolean;
    /**
     *
     */
    close(): void;
    /**
     *
     */
    dispose(): void;
    /**
     *
     * @param xhr
     * @param responseType
     */
    private setResponseType;
    /**
     *
     * @param request {URLRequest}
     */
    private getRequest;
    /**
     *
     * @param request {URLRequest}
     */
    private postRequest;
    /**
     *
     * @param error {XMLHttpRequestException}
     */
    private handleXmlHttpRequestException;
    /**
     *
     */
    private initXHR;
    /**
     *
     */
    private disposeXHR;
    /**
     *
     * @param source
     */
    decodeURLVariables(source: string): Object;
    /**
     * When XHR state changes
     * @param event
     */
    private onReadyStateChange;
    /**
     * When the request has completed, regardless of whether or not it was successful.
     * @param event
     */
    private onLoadEnd;
    /**
     * When the author specified timeout has passed before the request could complete.
     * @param event
     */
    private onTimeOut;
    /**
     * When the request has been aborted, either by invoking the abort() method or navigating away from the page.
     * @param event
     */
    private onAbort;
    /**
     * While loading and sending data.
     * @param event
     */
    private onProgress;
    /**
     * When the request starts.
     * @param event
     */
    private onLoadStart;
    /**
     * When the request has successfully completed.
     * @param event
     */
    private onLoadComplete;
    /**
     * When the request has failed. ( due to network issues ).
     * @param event
     */
    private onLoadError;
}
//# sourceMappingURL=URLLoader.d.ts.map