import { TouchEvent } from 'react'; export declare const systemInfo: import("@tarojs/taro").getSystemInfoSync.Result; export declare function pageScrollTop(top: number, animated?: boolean): void; interface windowResizeHandler { (res: { windowWidth: number; windowHeight: number; }): void; __sard_listener: () => void; } export declare function onWindowResize(listener: windowResizeHandler): void; export declare function offWindowResize(listener: windowResizeHandler): void; export type AutoHeight = boolean | { minHeight?: number; maxHeight?: number; }; export declare function resizeTextArea(el: HTMLInputElement & HTMLTextAreaElement, autoHeight: AutoHeight): void; /** * @description: 获取目标元素在根元素内的可滚动的祖先元素 * @param {HTMLElement} target 目标元素,通常为 Event.target * @param {HTMLElement} root 根元素 * @return {HTMLElement} */ export declare function getScrollParent(target: HTMLElement, root?: HTMLElement): HTMLElement; /** * @description: 阻止浏览器默认行为 * @param {Event} event * @return {void} */ export declare function preventDefault(event: Event | TouchEvent): void; /** * @description: 获取元素的相对于指定元素的坐标 * @param {HTMLElement} elem * @return {*} */ export declare function getOffset(elem: HTMLElement, root?: HTMLElement): { top: number; left: number; }; export type ScrollIntoViewPosition = 'start' | 'center' | 'end' | 'nearest'; export interface ScrollIntoViewValueOptions { placement?: ScrollIntoViewPosition; offsetStart?: number; offsetEnd?: number; limited?: boolean; pageHeight?: number; } /** ``` page ╱ ╭───────────────╮ viewport ╭─│─ ─ ─ ─ ─ ─ ─ ─│─╮ ╱ │ │ ╭───────────╮ │ │ │ │ │ element │ │ │ │ │ ╰───────────╯ │ │ ╰─│─ ─ ─ ─ ─ ─ ─ ─│─╯ │ │ │ │ ╰───────────────╯ ``` # 对象 - viewport: 视窗 - page: 页面 - element: 元素 # 参数 - viewportHeight: 视窗高度 - viewportScrollTop: 视窗顶部滚动距离 - elementHeight: 元素高度 - elementToPageTopOffset: 元素距离页面顶部距离 # 选项 - placement: 元素在视窗中的位置(start, center, end, nearest) - offsetStart: 元素距离视窗顶部的偏移量 - offsetEnd: 元素距离视窗底部的偏移量 - limited: 是否限定视窗滚动的距离,让页面始终覆盖视窗;需要同时传递pageHeight选项(用于自定义滚动) - pageHeight: 页面高度 # 结果值 - viewportScrollTop: 视窗顶部滚动的新的距离 */ export declare function getScrollIntoViewValue(viewportHeight: number, viewportScrollTop: number, elementHeight: number, elementToPageTopOffset: number, options?: ScrollIntoViewValueOptions): number; export interface ScrollIntoViewOptions { behavior?: 'smooth' | 'instant'; block?: 'start' | 'center' | 'end' | 'nearest'; inline?: 'start' | 'center' | 'end' | 'nearest'; contextId?: string; offsetTop?: number; offsetBottom?: number; } /** * 滚动元素到页面指定位置 * * @param pageScrollTop 当前页面滚动的距离 * @param element 使用 ref 获取到元素 * */ export declare function scrollIntoView(pageScrollTop: number, element: any, options?: ScrollIntoViewOptions): Promise; export type NodeRect = { width: number; height: number; top: number; right: number; bottom: number; left: number; }; export declare function getRectById(id: string, ctxId?: string): Promise; /** * 命令式获取获取元素的大小和位置,兼容H5、小程序、RN * * @param element 通过 ref 获取的元素 * @param ctxId 在小程序端如果使用 CustomWrapper 包裹元素,需要传递其id。 */ export declare function getRectByElement(element: any, ctxId?: string): Promise<{ width: number; height: number; top: number; right: number; bottom: number; left: number; }>; interface MatchScrollVisibleOptions { offset?: number; errorValue?: number; contextId?: string; isRect?: boolean; } /** * @description: 匹配元素列表中第一个位于滚动盒子可视区域的元素 * @param {HTMLElement} elements 元素列表 * @param {function} callback 匹配成功时回调 * @param {number} offset 距离滚动盒子顶部的偏移量 * @param {number} errorValue 误差值 * @return {void} */ export declare function matchScrollVisible(elementsOrRects: any[], callback: (index: number) => unknown, options?: MatchScrollVisibleOptions): Promise; export declare function getElementById(id?: string): any; export declare function createMouseBinder(options: { onStart?: (event: any) => void; onMove?: (event: any) => void; onEnd?: (event: any) => void; }): { onMouseDown: (event: any) => void; }; export {};