import type { Point } from '../../../../maths/point/Point';
import type { Bounds, BoundsData } from '../../../../scene/container/bounds/Bounds';
export interface ViewObserver
{
onViewUpdate: () => void;
}
/**
* A view is something that is able to be rendered by the renderer.
* @memberof scene
*/
export interface View
{
/** a unique id for this view */
uid: number;
/** whether or not this view should be batched */
batched: boolean;
/**
* an identifier that is used to identify the type of system that will be used to render this renderable
* eg, 'sprite' will use the sprite system (based on the systems name
*/
renderPipeId: string;
/** this is an int because it is packed directly into an attribute in the shader */
_roundPixels: 0 | 1;
/**
* Whether or not to round the x/y position of the object.
* @type {boolean}
*/
get roundPixels(): boolean;
/** if true, the view will have its position rounded to the nearest whole number */
set roundPixels(value: boolean);
/** this is the AABB rectangle bounds of the view in local untransformed space. */
bounds: BoundsData;
/** Adds the current bounds of this view to the supplied bounds */
addBounds: (bounds: Bounds) => void;
/** Checks if the point is within the view */
containsPoint: (point: Point) => boolean;
}