import type { HexColor, Position } from "./types.js"; export interface DebugScrollContainerStyleOptions { /** Viewport width. */ width?: number; /** Viewport height. */ height?: number; /** Content padding left. */ paddingLeft?: number; /** Content padding right. */ paddingRight?: number; /** Content padding top. */ paddingTop?: number; /** Content padding bottom. */ paddingBottom?: number; /** Background color. */ bgColor?: HexColor; /** Border color. */ strokeColor?: HexColor; /** Border thickness. */ strokeThickness?: number; /** Corner radius for panel and clip mask. */ cornerRadius?: number; /** Show scrollbar. */ scrollbarEnabled?: boolean; /** Scrollbar width in px. */ scrollbarWidth?: number; /** Scrollbar thumb color. */ scrollbarColor?: HexColor; /** Scrollbar track color. */ scrollbarTrackColor?: HexColor; /** Minimum thumb height. */ scrollbarMinThumbHeight?: number; } export interface CreateDebugScrollContainerOptions extends DebugScrollContainerStyleOptions { /** Initial scroll offset in px (default: 0). */ initialScrollY?: number; /** Enable mouse-wheel scrolling (default: true). */ wheelEnabled?: boolean; /** Wheel scroll step in px per tick (default: 24). */ wheelStep?: number; /** Enable touch/mouse drag scrolling (default: true). */ dragEnabled?: boolean; /** Position (optional). */ position?: Position; } /** * A masked vertical scroll container for debug UIs. * * Add children to the internal content container via `addItem()`/`addItems()`, * then call `layout()` if child bounds change. Supports wheel scrolling, * clamped scroll range, and optional visual scrollbar. */ export declare class DebugScrollContainer extends Phaser.GameObjects.Container { private _panel; private _content; private _maskGraphics; private _scrollbar; private _wheelZone; private _contentMask; private _width; private _height; private _paddingLeft; private _paddingRight; private _paddingTop; private _paddingBottom; private _bgColor; private _strokeColor; private _strokeThickness; private _cornerRadius; private _scrollbarEnabled; private _scrollbarWidth; private _scrollbarColor; private _scrollbarTrackColor; private _scrollbarMinThumbHeight; private _wheelEnabled; private _wheelStep; private _dragEnabled; private _contentMinY; private _contentHeight; private _scrollY; private _isDragging; private _dragStartY; private _dragScrollStart; private readonly _wheelHandler; private readonly _dragMoveHandler; private readonly _dragUpHandler; private readonly _preUpdateHandler; constructor(scene: Phaser.Scene, options?: CreateDebugScrollContainerOptions); addItem(child: Phaser.GameObjects.GameObject): this; addItems(children: Phaser.GameObjects.GameObject[]): this; removeItem(child: Phaser.GameObjects.GameObject, destroyChild?: boolean): this; removeAllItems(destroyChildren?: boolean): this; getContentContainer(): Phaser.GameObjects.Container; layout(): this; setScrollY(value: number): this; scrollBy(deltaY: number): this; scrollToTop(): this; scrollToBottom(): this; getScrollY(): number; getMaxScrollY(): number; getContentHeight(): number; setWheelEnabled(enabled: boolean): this; setWheelStep(step: number): this; setDragEnabled(enabled: boolean): this; setScrollbarEnabled(enabled: boolean): this; setViewportSize(width: number, height: number): this; setPadding(options: { left?: number; right?: number; top?: number; bottom?: number; }): this; setStyle(options: DebugScrollContainerStyleOptions): this; destroy(fromScene?: boolean): void; private redrawPanel; private redrawMaskAndWheelZone; /** * Syncs the mask graphics position to this container's world transform. * * Phaser's GeometryMask renders the mask graphics without the parent * container's transform matrix, so we position the standalone graphics * at the container's world origin each frame. */ private syncMaskPosition; private updateContentMetrics; private applyScroll; private redrawScrollbar; private handleWheel; private isWheelOverThisContainer; private ownsObject; private getItemHalfHeight; private getViewportLeft; private getViewportTop; private getViewportWidth; private getViewportHeight; } export declare function createDebugScrollContainer(scene: Phaser.Scene, options?: CreateDebugScrollContainerOptions): DebugScrollContainer; //# sourceMappingURL=DebugScrollContainer.d.ts.map