import BaseShapes from '../shapes/BaseShapes'; // import * as Phaser from 'phaser'; export default RoundRectangleProgress; declare namespace RoundRectangleProgress { /** * Callback fired when value changes. * @param newValue - New value. * @param oldValue - Previous value. * @param circularProgress - Progress instance. */ type ValueChangeCallbackType = ( newValue: number, oldValue: number, circularProgress: RoundRectangleProgress ) => void; /** * Resolved corner radius values. */ type CornerRadiusType = { /** * Radius x value. */ x: number, /** * Radius y value. */ y: number, /** * True if the corner is convex. */ convex: boolean }; type RadiusType = number | { x?: number, y?: number }; interface IRadiusConfig { /** * Top-left radius. */ tl?: RadiusType, /** * Top-right radius. */ tr?: RadiusType, /** * Bottom-left radius. */ bl?: RadiusType, /** * Bottom-right radius. */ br?: RadiusType, /** * Shared radius x value. */ x?: number, /** * Shared radius y value. */ y?: number, } /** * Orientation identifiers. */ type OrientationTypes = 0 | 1 | 'x' | 'y' | 'h' | 'v' | 'horizontal' | 'vertical' | 'left-to-right' | 'top-to-bottom'; interface IConfig { /** * Initial x position. */ x?: number, /** * Initial y position. */ y?: number, /** * Width of the progress bar. */ width?: number, /** * Height of the progress bar. */ height?: number, /** * Radius value or configuration. */ radius?: number | IRadiusConfig | ({ radius?: (number | IRadiusConfig), iteration?: number }), /** * Track color. */ trackColor?: string | number, /** * Track stroke thickness. */ trackStrokeThickness?: number, /** * Track stroke color. */ trackStrokeColor?: string | number, /** * Bar color. */ barColor?: string | number, /** * Right-to-left flag. */ rtl?: boolean, /** * Orientation value. */ orientation?: OrientationTypes, /** * Initial value. */ value?: number, /** * Ease configuration. */ easeValue?: { /** * Ease duration. */ duration?: number, /** * Ease function name. */ ease?: string }, /** * Value change callback. */ valuechangeCallback: ValueChangeCallbackType, } namespace Events { /** * Fired when value changes. * @param newValue - New value. * @param oldValue - Previous value. * @param circularProgress - Progress instance. */ type ValueChangeCallbackType = ( newValue: number, oldValue: number, circularProgress: RoundRectangleProgress ) => void; } } /** * Rounded-rectangle progress shape with track and bar styling. */ declare class RoundRectangleProgress extends BaseShapes { /** * Create a rounded-rectangle progress. * @param scene - The Scene to which this object belongs. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, config?: RoundRectangleProgress.IConfig ); /** * Create a rounded-rectangle progress. * @param scene - The Scene to which this object belongs. * @param x - The x position. * @param y - The y position. * @param width - Width of the progress bar. * @param height - Height of the progress bar. * @param radiusConfig - Radius configuration. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, x?: number, y?: number, width?: number, height?: number, radiusConfig?: number | RoundRectangleProgress.IRadiusConfig | ({ radius?: (number | RoundRectangleProgress.IRadiusConfig), iteration?: number }), config?: RoundRectangleProgress.IConfig ); /** * Create a rounded-rectangle progress. * @param scene - The Scene to which this object belongs. * @param x - The x position. * @param y - The y position. * @param width - Width of the progress bar. * @param height - Height of the progress bar. * @param radiusConfig - Radius configuration. * @param barColor - Bar color. * @param value - Initial value. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, x?: number, y?: number, width?: number, height?: number, radiusConfig?: number | RoundRectangleProgress.IRadiusConfig | ({ radius?: (number | RoundRectangleProgress.IRadiusConfig), iteration?: number }), barColor?: string | number, value?: number, config?: RoundRectangleProgress.IConfig ); /** * Current value. */ value: number; /** * Get value in a range. * @param min - Min value. * @param max - Max value. * @returns Value. */ getValue(min?: number, max?: number): number; /** * Set value in a range. * @param value - Target value. * @param min - Min value. * @param max - Max value. * @returns This instance. */ setValue(value?: number, min?: number, max?: number): this; /** * Add value in a range. * @param inc - Increment value. * @param min - Min value. * @param max - Max value. * @returns This instance. */ addValue(inc?: number, min?: number, max?: number): this; /** * Ease value to a target. * @param value - Target value. * @param min - Min value. * @param max - Max value. * @returns This instance. */ easeValueTo(value?: number, min?: number, max?: number): this; /** * Stop value easing. * @returns This instance. */ stopEaseValue(): this; /** * Set ease duration. * @param duration - Duration in ms. * @returns This instance. */ setEaseValueDuration(duration: number): this; /** * Set ease function. * @param ease - Ease function name. * @returns This instance. */ setEaseValueFunction(ease: string): this; /** * Track color. */ trackColor: number; /** * Set track color. * @param color - Track color. * @returns This instance. */ setTrackColor(color?: number): this; /** * Track stroke thickness. */ trackStrokeThickness: number; /** * Track stroke color. */ trackStrokeColor: number; /** * Set track stroke. * @param lineWidth - Stroke thickness. * @param color - Stroke color. * @returns This instance. */ setTrackStroke( lineWidth?: number, color?: number ): this; /** * Bar color. */ barColor: number; /** * Set bar color. * @param color - Bar color. * @returns This instance. */ setBarColor(color?: number): this; /** * Right-to-left flag. */ rtl: boolean; /** * Set right-to-left flag. * @param enable - True to enable RTL. * @returns This instance. */ setRTL(enable?: boolean): this; /** * Orientation value. */ orientation: number; /** * Set orientation. * @param orientation - Orientation value. * @returns This instance. */ setOrientation(orientation: RoundRectangleProgress.OrientationTypes): this; /** * Iteration count. */ iteration: number; /** * Set iteration count. * @param iteration - Iteration count. * @returns This instance. */ setIteration(iteration: number): this; /** * Radius value. */ radius: number; /** * Set radius value. * @param value - Radius value or config. * @returns This instance. */ setRadius( value: number | RoundRectangleProgress.IRadiusConfig ): this; /** * Top-left radius value. */ radiusTL: number; /** * Set top-left radius. * @param value - Radius value or config. * @returns This instance. */ setRadiusTL( value: number | RoundRectangleProgress.IRadiusConfig ): this; /** * Top-right radius value. */ radiusTR: number; /** * Set top-right radius. * @param value - Radius value or config. * @returns This instance. */ setRadiusTR( value: number | RoundRectangleProgress.IRadiusConfig ): this; /** * Bottom-left radius value. */ radiusBL: number; /** * Set bottom-left radius. * @param value - Radius value or config. * @returns This instance. */ setRadiusBL( value: number | RoundRectangleProgress.IRadiusConfig ): this; /** * Bottom-right radius value. */ radiusBR: number; /** * Set bottom-right radius. * @param value - Radius value or config. * @returns This instance. */ setRadiusBR( value: number | RoundRectangleProgress.IRadiusConfig ): this; /** * Resolved corner radius values. */ readonly cornerRadius: { tl: RoundRectangleProgress.CornerRadiusType, tr: RoundRectangleProgress.CornerRadiusType, bl: RoundRectangleProgress.CornerRadiusType, br: RoundRectangleProgress.CornerRadiusType, }; }