import { type KeyEvent } from "../lib"; import { type ScrollAcceleration } from "../lib/scroll-acceleration"; import type { Renderable, RenderableOptions } from "../Renderable"; import type { MouseEvent } from "../renderer"; import type { RenderContext } from "../types"; import { BoxRenderable, type BoxOptions } from "./Box"; import type { VNode } from "./composition/vnode"; import { ScrollBarRenderable, type ScrollBarOptions, type ScrollUnit } from "./ScrollBar"; declare class ContentRenderable extends BoxRenderable { private viewport; private _viewportCulling; constructor(ctx: RenderContext, viewport: BoxRenderable, viewportCulling: boolean, options: RenderableOptions); get viewportCulling(): boolean; set viewportCulling(value: boolean); protected _getVisibleChildren(): number[]; } export interface ScrollBoxOptions extends BoxOptions { rootOptions?: BoxOptions; wrapperOptions?: BoxOptions; viewportOptions?: BoxOptions; contentOptions?: BoxOptions; scrollbarOptions?: Omit; verticalScrollbarOptions?: Omit; horizontalScrollbarOptions?: Omit; stickyScroll?: boolean; stickyStart?: "bottom" | "top" | "left" | "right"; scrollX?: boolean; scrollY?: boolean; scrollAcceleration?: ScrollAcceleration; viewportCulling?: boolean; } export declare class ScrollBoxRenderable extends BoxRenderable { static idCounter: number; private internalId; readonly wrapper: BoxRenderable; readonly viewport: BoxRenderable; readonly content: ContentRenderable; readonly horizontalScrollBar: ScrollBarRenderable; readonly verticalScrollBar: ScrollBarRenderable; protected _focusable: boolean; private selectionListener?; private autoScrollMouseX; private autoScrollMouseY; private readonly autoScrollThresholdVertical; private readonly autoScrollThresholdHorizontal; private readonly autoScrollSpeedSlow; private readonly autoScrollSpeedMedium; private readonly autoScrollSpeedFast; private isAutoScrolling; private cachedAutoScrollSpeed; private autoScrollAccumulatorX; private autoScrollAccumulatorY; private scrollAccumulatorX; private scrollAccumulatorY; private _stickyScroll; private _stickyScrollTop; private _stickyScrollBottom; private _stickyScrollLeft; private _stickyScrollRight; private _stickyStart?; private _hasManualScroll; private _isApplyingStickyScroll; private scrollAccel; get stickyScroll(): boolean; set stickyScroll(value: boolean); get stickyStart(): "bottom" | "top" | "left" | "right" | undefined; set stickyStart(value: "bottom" | "top" | "left" | "right" | undefined); get scrollTop(): number; set scrollTop(value: number); get scrollLeft(): number; set scrollLeft(value: number); get scrollWidth(): number; get scrollHeight(): number; private updateStickyState; private applyStickyStart; constructor(ctx: RenderContext, { wrapperOptions, viewportOptions, contentOptions, rootOptions, scrollbarOptions, verticalScrollbarOptions, horizontalScrollbarOptions, stickyScroll, stickyStart, scrollX, scrollY, scrollAcceleration, viewportCulling, ...options }: ScrollBoxOptions); protected onUpdate(deltaTime: number): void; scrollBy(delta: number | { x: number; y: number; }, unit?: ScrollUnit): void; scrollTo(position: number | { x: number; y: number; }): void; private isAtStickyPosition; add(obj: Renderable | VNode, index?: number): number; insertBefore(obj: Renderable | VNode | unknown, anchor?: Renderable | unknown): number; remove(id: string): void; getChildren(): Renderable[]; protected onMouseEvent(event: MouseEvent): void; handleKeyPress(key: KeyEvent): boolean; private resetScrollAccumulators; startAutoScroll(mouseX: number, mouseY: number): void; updateAutoScroll(mouseX: number, mouseY: number): void; stopAutoScroll(): void; private hasOtherLiveReasons; private handleAutoScroll; private getAutoScrollDirectionX; private getAutoScrollDirectionY; private getAutoScrollSpeed; private recalculateBarProps; set rootOptions(options: ScrollBoxOptions["rootOptions"]); set wrapperOptions(options: ScrollBoxOptions["wrapperOptions"]); set viewportOptions(options: ScrollBoxOptions["viewportOptions"]); set contentOptions(options: ScrollBoxOptions["contentOptions"]); set scrollbarOptions(options: ScrollBoxOptions["scrollbarOptions"]); set verticalScrollbarOptions(options: ScrollBoxOptions["verticalScrollbarOptions"]); set horizontalScrollbarOptions(options: ScrollBoxOptions["horizontalScrollbarOptions"]); get scrollAcceleration(): ScrollAcceleration; set scrollAcceleration(value: ScrollAcceleration); get viewportCulling(): boolean; set viewportCulling(value: boolean); protected destroySelf(): void; } export {};