import { IAssetClass, IAbstractionPool, AbstractionBase, IAsset, Matrix3D, ColorTransform } from '@awayjs/core';
import { _IRender_RenderableClass } from './_IRender_RenderableClass';
import { ContainerNode } from '@awayjs/view';
import { RendererBase } from '../RendererBase';
import { _Render_RenderableBase } from './_Render_RenderableBase';
import { AbstractionSet } from '@awayjs/core/dist/lib/base/AbstractionSet';
/**
 * @class away.pool.RenderEntity
 */
export declare class RenderEntity extends AbstractionBase implements IAbstractionPool {
    private static _store;
    private static _renderRenderableClassPool;
    readonly abstractions: AbstractionSet;
    /**
     *
     * @returns {ContainerNode}
     */
    get node(): ContainerNode;
    /**
     *
     * @returns {RendererBase}
     */
    get renderer(): RendererBase;
    /**
     *
     */
    zIndex: number;
    /**
     *
     */
    renderSceneTransform: Matrix3D;
    /**
     *
     */
    colorTransform: ColorTransform;
    /**
     *
     */
    maskOwners: ContainerNode[];
    constructor();
    /**
     * //TODO
     *
     * @param materialClassGL
     */
    init(node: ContainerNode, renderer: RendererBase): void;
    onClear(): void;
    onInvalidate(): void;
    _onInvalidateElements(): void;
    _onInvalidateMaterial(): void;
    _onInvalidateStyle(): void;
    requestAbstraction(asset: IAsset): _Render_RenderableBase;
    storeAbstraction(abstraction: _Render_RenderableBase, assetType: string): void;
    /**
     *
     * @param imageObjectClass
     */
    static registerRenderable(renderStateClass: _IRender_RenderableClass, assetClass: IAssetClass): void;
}
//# sourceMappingURL=RenderEntity.d.ts.map