import '../../../globals.js';
/**
 * Meant for displaying a large amount of high-performance instances of sprites.
 * See https://github.com/phetsims/scenery/issues/990 for more information.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Bounds2 from '../../../dot/js/Bounds2.js';
import Matrix3 from '../../../dot/js/Matrix3.js';
import Vector2 from '../../../dot/js/Vector2.js';
import { Shape } from '../../../kite/js/imports.js';
import { CanvasContextWrapper, CanvasSelfDrawable, Instance, Node, NodeOptions, Sprite, SpriteInstance, WebGLSelfDrawable } from '../imports.js';
type SelfOptions = {
    sprites?: Sprite[];
    spriteInstances?: SpriteInstance[];
    hitTestSprites?: boolean;
    canvasBounds?: Bounds2;
};
export type SpritesOptions = SelfOptions & NodeOptions;
export default class Sprites extends Node {
    private _sprites;
    private _spriteInstances;
    private _hitTestSprites;
    constructor(providedOptions?: SpritesOptions);
    /**
     * Sets the bounds that are used for layout/repainting.
     *
     * These bounds should always cover at least the area where the Sprites will draw in. If this is violated, this
     * node may be partially or completely invisible in Scenery's output.
     */
    setCanvasBounds(selfBounds: Bounds2): void;
    set canvasBounds(value: Bounds2);
    get canvasBounds(): Bounds2;
    /**
     * Returns the previously-set canvasBounds, or Bounds2.NOTHING if it has not been set yet.
     */
    getCanvasBounds(): Bounds2;
    /**
     * Draws the current Node's self representation, assuming the wrapper's Canvas context is already in the local
     * coordinate frame of this node.
     *
     * @param wrapper
     * @param matrix - The transformation matrix already applied to the context.
     */
    protected canvasPaintSelf(wrapper: CanvasContextWrapper, matrix: Matrix3): void;
    /**
     * Creates a Canvas drawable for this Sprites node. (scenery-internal)
     *
     * @param renderer - In the bitmask format specified by Renderer, which may contain additional bit flags.
     * @param instance - Instance object that will be associated with the drawable
     */
    createCanvasDrawable(renderer: number, instance: Instance): CanvasSelfDrawable;
    /**
     * Creates a WebGL drawable for this Image. (scenery-internal)
     *
     * @param renderer - In the bitmask format specified by Renderer, which may contain additional bit flags.
     * @param instance - Instance object that will be associated with the drawable
     */
    createWebGLDrawable(renderer: number, instance: Instance): WebGLSelfDrawable;
    /**
     * Computes whether the provided point is "inside" (contained) in this Node's self content, or "outside".
     *
     * @param point - Considered to be in the local coordinate frame
     */
    containsPointSelf(point: Vector2): boolean;
    /**
     * Finds which sprite instance is on top under a certain point (or null if none are).
     */
    getSpriteInstanceFromPoint(point: Vector2): SpriteInstance | null;
    /**
     * Returns a Shape that represents the area covered by containsPointSelf.
     */
    getSelfShape(): Shape;
    /**
     * Whether this Node itself is painted (displays something itself).
     */
    isPainted(): boolean;
    /**
     * Should be called when this node needs to be repainted. When not called, Scenery assumes that this node does
     * NOT need to be repainted (although Scenery may repaint it due to other nodes needing to be repainted).
     *
     * This sets a "dirty" flag, so that it will be repainted the next time it would be displayed.
     */
    invalidatePaint(): void;
    mutate(options?: SpritesOptions): this;
}
export {};
//# sourceMappingURL=Sprites.d.ts.map