import { type Skeleton as SpineSkeleton } from "@esotericsoftware/spine-core"; /** A bounds provider calculates the bounding box for a skeleton. * * @remarks Returned bounds are in skeleton-local coordinates and will be used as * the Spine GameObject bounds. */ export interface SpineGameObjectBoundsProvider { /** * Calculates bounds in skeleton-local coordinates. * @param gameObject Object containing the skeleton to measure. * @returns The calculated bounds rectangle. */ calculateBounds(gameObject: { skeleton?: SpineSkeleton; }): { x: number; y: number; width: number; height: number; }; } /** A bounds provider that provides a fixed rectangle size. */ export declare class AABBRectangleBoundsProvider implements SpineGameObjectBoundsProvider { private x; private y; private width; private height; /** * @param x The bounds x-coordinate in skeleton-local coordinates. * @param y The bounds y-coordinate in skeleton-local coordinates. * @param width The bounds width. * @param height The bounds height. */ constructor(x: number, y: number, width: number, height: number); /** @returns The fixed bounds rectangle. */ calculateBounds(): { x: number; y: number; width: number; height: number; }; } /** A bounds provider that calculates the bounds from the setup pose. */ export declare class SetupPoseBoundsProvider implements SpineGameObjectBoundsProvider { private clipping; /** @param clipping If true, clipping attachments are used while calculating bounds. */ constructor(clipping?: boolean); /** * Calculates bounds from the skeleton setup pose. * @param gameObject Object containing the skeleton to measure. * @returns The calculated bounds rectangle. */ calculateBounds(gameObject: { skeleton?: SpineSkeleton; }): { x: number; y: number; width: number; height: number; }; } /** A bounds provider that calculates bounds over the supplied skins and animation. */ export declare class SkinsAndAnimationBoundsProvider implements SpineGameObjectBoundsProvider { private animation; private skins; private timeStep; private clipping; /** * @param animation Animation name to sample, or `null` to use the setup pose. * @param skins Skin names to combine before measuring. Empty uses the skeleton's default skin. * @param timeStep Sampling time step in seconds. * @param clipping If true, clipping attachments are used while calculating bounds. */ constructor(animation: string | null, skins?: string[], timeStep?: number, clipping?: boolean); /** * Calculates bounds by sampling the configured skins and animation. * @param gameObject Object containing the skeleton to measure. * @returns The calculated bounds rectangle. */ calculateBounds(gameObject: { skeleton?: SpineSkeleton; }): { x: number; y: number; width: number; height: number; }; }