import '../../../globals.js';
/**
 * Represents a single instance on the screen of a given Sprite object. It can have its own transformation matrix, and
 * is set up as a lightweight container of information, for high-performance usage (with pooling).
 *
 * Its individual parameters should generally be mutated directly by the client.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Matrix3 from '../../../dot/js/Matrix3.js';
import Vector2 from '../../../dot/js/Vector2.js';
import { Shape } from '../../../kite/js/imports.js';
import Enumeration from '../../../phet-core/js/Enumeration.js';
import EnumerationValue from '../../../phet-core/js/EnumerationValue.js';
import Pool from '../../../phet-core/js/Pool.js';
import { Sprite } from '../imports.js';
export declare class SpriteInstanceTransformType extends EnumerationValue {
    static readonly TRANSLATION: SpriteInstanceTransformType;
    static readonly TRANSLATION_AND_SCALE: SpriteInstanceTransformType;
    static readonly TRANSLATION_AND_ROTATION: SpriteInstanceTransformType;
    static readonly AFFINE: SpriteInstanceTransformType;
    static readonly enumeration: Enumeration<SpriteInstanceTransformType>;
}
export default class SpriteInstance {
    sprite: Sprite | null;
    matrix: Matrix3;
    transformType: SpriteInstanceTransformType;
    alpha: number;
    constructor();
    /**
     * For pooling. Please use SpriteInstance.pool.fetch() to grab a copy
     */
    initialize(): this;
    /**
     * Returns a Shape that represents the hit-testable area of this SpriteInstance.
     */
    getShape(): Shape;
    /**
     * Returns whether a given point is considered "inside" the SpriteInstance
     */
    containsPoint(point: Vector2): boolean;
    freeToPool(): void;
    static readonly pool: Pool<typeof SpriteInstance>;
}
//# sourceMappingURL=SpriteInstance.d.ts.map