import { BoundingBox, Color } from "@galacean/engine-math";
import { RenderContext } from "../../RenderPipeline/RenderContext";
import { Renderer } from "../../Renderer";
import { ISpriteRenderer } from "../assembler/ISpriteRenderer";
import { SpriteDrawMode } from "../enums/SpriteDrawMode";
import { SpriteFilledMode } from "../enums/SpriteFilledMode";
import { SpriteFilledOrigin } from "../enums/SpriteFilledOrigin";
import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
import { SpriteTileMode } from "../enums/SpriteTileMode";
import { Sprite } from "./Sprite";
import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
/**
 * Renders a Sprite for 2D graphics.
 */
export declare class SpriteRenderer extends Renderer implements ISpriteRenderer {
    private _drawMode;
    private _assembler;
    private _tileMode;
    private _tiledAdaptiveThreshold;
    private _filledMode;
    private _filledAmount;
    private _filledOrigin;
    private _filledClockWise;
    private _color;
    private _sprite;
    private _automaticWidth;
    private _automaticHeight;
    private _customWidth;
    private _customHeight;
    private _flipX;
    private _flipY;
    /**
     * The draw mode of the sprite renderer.
     */
    get drawMode(): SpriteDrawMode;
    set drawMode(value: SpriteDrawMode);
    /**
     * The tiling mode of the sprite renderer. (Only works in tiled mode.)
     */
    get tileMode(): SpriteTileMode;
    set tileMode(value: SpriteTileMode);
    /**
     * Stretch Threshold in Tile Adaptive Mode, specified in normalized. (Only works in tiled adaptive mode.)
     */
    get tiledAdaptiveThreshold(): number;
    set tiledAdaptiveThreshold(value: number);
    /**
     * The fill amount of the sprite renderer, range from 0 to 1. (Only works in filled mode.)
     */
    get filledAmount(): number;
    set filledAmount(value: number);
    /**
     * The fill mode of the sprite renderer. (Only works in filled mode.)
     */
    get filledMode(): SpriteFilledMode;
    set filledMode(value: SpriteFilledMode);
    /**
     * The fill origin of the sprite renderer. (Only works in filled mode.)
     */
    get filledOrigin(): SpriteFilledOrigin;
    set filledOrigin(value: SpriteFilledOrigin);
    /**
     * Whether the fill is clockwise. (Only works in filled radial mode.)
     */
    get filledClockWise(): boolean;
    set filledClockWise(value: boolean);
    /**
     * The Sprite to render.
     */
    get sprite(): Sprite;
    set sprite(value: Sprite | null);
    /**
     * Rendering color for the Sprite graphic.
     */
    get color(): Color;
    set color(value: Color);
    /**
     * Render width (in world coordinates).
     *
     * @remarks
     * If width is set, return the set value,
     * otherwise return `SpriteRenderer.sprite.width`.
     */
    get width(): number;
    set width(value: number);
    /**
     * Render height (in world coordinates).
     *
     * @remarks
     * If height is set, return the set value,
     * otherwise return `SpriteRenderer.sprite.height`.
     */
    get height(): number;
    set height(value: number);
    /**
     * Flips the sprite on the X axis.
     */
    get flipX(): boolean;
    set flipX(value: boolean);
    /**
     * Flips the sprite on the Y axis.
     */
    get flipY(): boolean;
    set flipY(value: boolean);
    /**
     * The mask layer the sprite renderer belongs to.
     */
    get maskLayer(): SpriteMaskLayer;
    set maskLayer(value: SpriteMaskLayer);
    /**
     * Interacts with the masks.
     */
    get maskInteraction(): SpriteMaskInteraction;
    set maskInteraction(value: SpriteMaskInteraction);
    protected _updateBounds(worldBounds: BoundingBox): void;
    protected _render(context: RenderContext): void;
    protected _onDestroy(): void;
    private _calDefaultSize;
    private _onSpriteChange;
    private _onColorChanged;
}
