import Label from '../label/Label'; export default DropDownList; declare namespace DropDownList { type CreateButtonCallbackType = ( this: DropDownList, scene: Phaser.Scene, option: any, index: number, options: any[] ) => Phaser.GameObjects.GameObject; type CreateBackgroundCallbackType = ( this: DropDownList, scene: Phaser.Scene, ) => Phaser.GameObjects.GameObject; type OnButtonClickCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type OnButtonOverCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type OnButtonOutCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type AlignParentType = 'text' | 'icon'; type ExpandDirectionType = 0 | 1 | 'down' | 'up'; type SetValueCallbackType = ( dropDownList: DropDownList, value?: any, previousValue?: any, ) => void; type ListSpaceType = { left?: number, right?: number, top?: number, bottom?: number, item?: number }; type WrapListSpaceType = { left?: number, right?: number, top?: number, bottom?: number, item?: number, line?: number } interface IConfig extends Label.IConfig { options?: any[], list?: { createBackgroundCallback?: CreateBackgroundCallbackType; createButtonCallback?: CreateButtonCallbackType; onButtonClick?: OnButtonClickCallbackType; onButtonOver?: OnButtonOverCallbackType; onButtonOut?: OnButtonOutCallbackType; easeIn?: number; easeOut?: number; wrap?: boolean; width?: number; height?: number; alignParent?: AlignParentType; expandDirection?: ExpandDirectionType; bounds?: Phaser.Geom.Rectangle; space?: ListSpaceType | WrapListSpaceType; draggable?: boolean; }, setValueCallback?: SetValueCallbackType; setValueCallbackScope?: object; value?: any; } } declare class DropDownList extends Label { constructor( scene: Phaser.Scene, config?: DropDownList.IConfig ); setOptions(options: any[]): this; openListPanel(): this; closeListPanel(): this; toggleListPanel(): this; setValue(value?: any): this; value: any; setCreateButtonCallback(callback?: DropDownList.CreateBackgroundCallbackType): this; setCreateBackgroundCallback(callback?: DropDownList.CreateBackgroundCallbackType): this; setButtonClickCallback(callback?: DropDownList.OnButtonClickCallbackType): this; setButtonOverCallback(callback?: DropDownList.OnButtonOverCallbackType): this; setButtonOutCallback(callback?: DropDownList.OnButtonOutCallbackType): this; setListEaseInDuration(duration?: number): this; setListEaseOutDuration(duration?: number): this; setWrapEnable(enable?: boolean): this; setListWidth(width?: number): this; setListHeight(height?: number): this; setListSize(width?: number, height?: number): this; setListAlignmentMode(mode?: DropDownList.AlignParentType): this; setListBounds(bounds: Phaser.Geom.Rectangle): this; setListSpace(space?: DropDownList.ListSpaceType | DropDownList.WrapListSpaceType): this; setListDraggable(enable?: boolean): this; }