import { IAsset } from '../library/IAsset';
import { URLLoader } from '../net/URLLoader';
import { URLRequest } from '../net/URLRequest';
import { ParserBase } from '../parsers/ParserBase';
/**
 * ResourceDependency represents the data required to load, parse and resolve additional files ("dependencies")
 * required by a parser, used by ResourceLoadSession.
 *
 */
export declare class ResourceDependency {
    private _id;
    private _sub_id;
    private _request;
    private _data;
    private _parser;
    private _parentParser;
    private _retrieveAsRawData;
    private _suppressAssetEvents;
    private _assets;
    private _dependencies;
    loader: URLLoader;
    success: boolean;
    constructor(id: string, request: URLRequest, data: any, parser: ParserBase, parentParser: ParserBase, retrieveAsRawData?: boolean, suppressAssetEvents?: boolean, sub_id?: number);
    /**
     *
     */
    get id(): string;
    /**
     *
     */
    get sub_id(): number;
    /**
     *
     */
    get request(): URLRequest;
    /**
     * The data containing the dependency to be parsed, if the resource was already loaded.
     */
    get data(): any;
    /**
     *
     */
    get parser(): ParserBase;
    /**
     * The parser which is dependent on this ResourceDependency object.
     */
    get parentParser(): ParserBase;
    /**
     *
     */
    get retrieveAsRawData(): boolean;
    /**
     *
     */
    get suppresAssetEvents(): boolean;
    /**
     *
     */
    get assets(): Array<IAsset>;
    /**
     *
     */
    get dependencies(): Array<ResourceDependency>;
    /**
     * @private
     * Method to set data after having already created the dependency object, e.g. after load.
     */
    setData(data: any): void;
    /**
     * @private
     *
     */
    setParser(parser: ParserBase): void;
    /**
     * Resolve the dependency when it's loaded with the parent parser. For example, a dependency containing an
     * ImageResource would be assigned to a Mesh instance as a BitmapMaterial, a scene graph object would be added
     * to its intended parent. The dependency should be a member of the dependencies property.
     */
    resolve(): void;
    /**
     * Resolve a dependency failure. For example, map loading failure from a 3d file
     */
    resolveFailure(): void;
    /**
     * Resolve the dependencies name
     */
    resolveName(asset: IAsset): string;
}
//# sourceMappingURL=ResourceDependency.d.ts.map