// import * as Phaser from 'phaser'; import Scrollable from '../utils/scrollable/Scrollable'; export default ScrollablePanel; declare namespace ScrollablePanel { type MaskConfig = { /** * Mask padding. */ padding?: number | { /** * Left padding. */ left?: number, /** * Right padding. */ right?: number, /** * Top padding. */ top?: number, /** * Bottom padding. */ bottom?: number, }, /** * Mask update mode. */ updateMode?: 0 | 1 | 'update' | 'everyTick' } interface IConfig extends Scrollable.IConfig { /** * Spacing configuration. */ space?: { /** * Left space. */ left?: number, /** * Right space. */ right?: number, /** * Top space. */ top?: number, /** * Bottom space. */ bottom?: number, /** * Panel padding or spacing. */ panel?: number | { /** * Left panel padding. */ left?: number, /** * Right panel padding. */ right?: number, /** * Top panel padding. */ top?: number, /** * Bottom panel padding. */ bottom?: number, }, /** * Horizontal slider spacing. */ sliderX?: number, /** * Vertical slider spacing. */ sliderY?: number, /** * Header spacing. */ header?: number, /** * Footer spacing. */ footer?: number, }, /** * Panel configuration. */ panel: { /** * Panel child game object. */ child: Phaser.GameObjects.GameObject, /** * Mask configuration or true to enable. */ mask?: MaskConfig | boolean, /** * True to enable layer support. */ enableLayer?: boolean, /** * True to keep original child origin. */ childOrigin0?: boolean, }, /** * Alignment configuration. */ align?: { /** * Header alignment. */ header?: Scrollable.AlignTypes, /** * Footer alignment. */ footer?: Scrollable.AlignTypes, /** * Panel alignment. */ panel?: Scrollable.AlignTypes, }, /** * Expand settings. */ expand?: { /** * True to expand header. */ header?: boolean, /** * True to expand footer. */ footer?: boolean, /** * True to expand panel. */ panel?: boolean, }, } } /** * Scrollable panel that hosts a single child with optional mask. */ declare class ScrollablePanel extends Scrollable { /** * Create a scrollable panel. * @param scene - The Scene to which this object belongs. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, config?: ScrollablePanel.IConfig ); /** * Scroll to make a child visible. * @param child - Child to scroll to. * @param align - Alignment within the viewport. * @param duration - Tween duration in ms. * @param ease - Easing name. * @returns This instance. */ scrollToChild( child: Phaser.GameObjects.GameObject, align?: 'top' | 'bottom' | 'centerY' | 'left' | 'right' | 'centerX' | 'center', duration?: number, ease?: string ): this; }