import Gtk from "gi://Gtk"; import type { CornerType, PolicyType, PositionType, ShadowType } from "../../../enums/gtk3-index"; import type { GjsContext } from "../../../reconciler/gjs-renderer"; import type { HostContext } from "../../../reconciler/host-context"; import { BaseElement, type GjsElement } from "../../gjs-element"; import { ChildOrderController } from "../../utils/element-extenders/child-order-controller"; import { ElementLifecycleController } from "../../utils/element-extenders/element-lifecycle-controller"; import type { SyntheticEvent } from "../../utils/element-extenders/event-handlers"; import { EventHandlers } from "../../utils/element-extenders/event-handlers"; import type { DiffedProps } from "../../utils/element-extenders/map-properties"; import { PropertyMapper } from "../../utils/element-extenders/map-properties"; import type { AlignmentProps } from "../../utils/property-maps-factories/create-alignment-prop-mapper"; import type { ChildPropertiesProps } from "../../utils/property-maps-factories/create-child-props-mapper"; import type { ExpandProps } from "../../utils/property-maps-factories/create-expand-prop-mapper"; import type { MarginProps } from "../../utils/property-maps-factories/create-margin-prop-mapper"; import type { SizeRequestProps } from "../../utils/property-maps-factories/create-size-request-prop-mapper"; import type { StyleProps } from "../../utils/property-maps-factories/create-style-prop-mapper"; import type { TextNode } from "../text-node"; type ScrollBoxPropsMixin = ChildPropertiesProps & SizeRequestProps & AlignmentProps & MarginProps & ExpandProps & StyleProps; type DefaultEventData = { currentContentHeight: number; currentContentWidth: number; currentVPosition: number; currentHPosition: number; }; export type ScrollBoxEvent
= {}> = SyntheticEvent
;
export interface ScrollBoxProps extends ScrollBoxPropsMixin {
maxWidth?: number;
maxHeight?: number;
minWidth?: number;
minHeight?: number;
useChildHeight?: boolean;
useChildWidth?: boolean;
placement?: CornerType;
horizontalScrollbar?: PolicyType;
verticalScrollbar?: PolicyType;
shadow?: ShadowType;
overlayScrolling?: boolean;
onEdgeReached?: (event: ScrollBoxEvent<{
position: PositionType;
}>) => void;
onScroll?: (event: ScrollBoxEvent) => void;
onContentSizeChange?: (event: ScrollBoxEvent) => void;
}
export declare class ScrollBoxElement extends BaseElement implements GjsElement<"SCROLL_BOX", Gtk.ScrolledWindow> {
static getContext(currentContext: HostContext