import { PropType } from 'vue'; import { Styles } from '@wolf-tui/core'; import { ClassNameValue } from '@wolf-tui/shared'; export interface IScrollViewProps { /** * Viewport height in rows. Required — the visible window that clips overflow. */ height: number; /** * Controlled scroll offset. If provided, the parent owns state and must * sync via `onScroll`. If omitted, ScrollView manages its own offset. */ offset?: number; /** * When true (default), the component wires arrow keys, PageUp/PageDown, * Home, and End to the scroll offset. Disable to handle input externally. * * @default true */ keyBindings?: boolean; /** * Called whenever the offset changes (user input OR imperative methods). */ onScroll?: (offset: number) => void; /** * Called whenever the measured content height changes. */ onContentHeightChange?: (height: number) => void; /** * Additional styles applied to the outer viewport box. */ style?: Styles; /** * Additional className applied to the outer viewport box. */ className?: ClassNameValue; } export interface IScrollViewHandle { scrollTo: (offset: number) => void; scrollBy: (delta: number) => void; scrollToTop: () => void; scrollToBottom: () => void; getScrollOffset: () => number; getContentHeight: () => number; getViewportHeight: () => number; } export declare const ScrollView: import('vue').DefineComponent; required: true; }; offset: { type: PropType; default: undefined; }; keyBindings: { type: BooleanConstructor; default: boolean; }; onScroll: { type: PropType<(offset: number) => void>; default: undefined; }; onContentHeightChange: { type: PropType<(height: number) => void>; default: undefined; }; style: { type: PropType; default: () => {}; }; className: { type: PropType; default: undefined; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly; required: true; }; offset: { type: PropType; default: undefined; }; keyBindings: { type: BooleanConstructor; default: boolean; }; onScroll: { type: PropType<(offset: number) => void>; default: undefined; }; onContentHeightChange: { type: PropType<(height: number) => void>; default: undefined; }; style: { type: PropType; default: () => {}; }; className: { type: PropType; default: undefined; }; }>> & Readonly<{}>, { style: Styles; className: ClassNameValue; onScroll: (offset: number) => void; offset: number | undefined; keyBindings: boolean; onContentHeightChange: (height: number) => void; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; export type { IScrollViewProps as Props, IScrollViewProps as ScrollViewProps }; //# sourceMappingURL=ScrollView.d.ts.map