import { Matrix, AbstractionBase } from '@awayjs/core';
import { Stage, _Stage_ImageBase, ImageSampler } from '@awayjs/stage';
import { _Render_MaterialBase } from './_Render_MaterialBase';
import { _Stage_ElementsBase } from './_Stage_ElementsBase';
import { IMaterial } from './IMaterial';
import { RenderEntity } from './RenderEntity';
import { Style } from './Style';
import { IRenderable } from './IRenderable';
/**
 * @class RenderableListItem
 */
export declare class _Render_RenderableBase extends AbstractionBase {
    private _renderMaterial;
    private _materialDirty;
    private _stageElements;
    private _elementsDirty;
    private _styleDirty;
    private _images;
    private _samplers;
    private _uvMatrix;
    JOINT_INDEX_FORMAT: string;
    JOINT_WEIGHT_FORMAT: string;
    _count: number;
    _offset: number;
    protected _stage: Stage;
    /**
     *
     */
    get images(): Array<_Stage_ImageBase>;
    /**
     *
     */
    get samplers(): Array<ImageSampler>;
    /**
     *
     */
    get uvMatrix(): Matrix;
    /**
     *
     */
    next: _Render_RenderableBase;
    /**
     *
     */
    materialID: number;
    /**
     *
     */
    renderOrderId: number;
    /**
     *
     */
    cascaded: boolean;
    /**
     *
     * @returns {_Stage_ElementsBase}
     */
    get stageElements(): _Stage_ElementsBase;
    /**
     *
     * @returns {_Render_MaterialBase}
     */
    get renderMaterial(): _Render_MaterialBase;
    get entity(): RenderEntity;
    get renderable(): IRenderable;
    constructor();
    /**
     *
     * @param renderable
     * @param sourceEntity
     * @param surface
     * @param renderer
     */
    init(renderable: IRenderable, entity: RenderEntity): void;
    /**
     * Renders an object to the current render target.
     *
     * @private
     */
    draw(): void;
    onClear(): void;
    _onInvalidateElements(): void;
    _onInvalidateMaterial(): void;
    _onInvalidateStyle(): void;
    protected _getStageElements(): _Stage_ElementsBase;
    protected _getRenderMaterial(): _Render_MaterialBase;
    protected _getStyle(): Style;
    /**
     * //TODO
     *
     * @private
     */
    private _updateElements;
    protected _updateMaterial(): void;
    protected _updateStyle(): void;
    protected getDefaultMaterial(): IMaterial;
}
//# sourceMappingURL=_Render_RenderableBase.d.ts.map