import { type IntersectionObserver } from '@tarojs/taro'; import * as CSS from 'csstype'; import { defaultItemKey } from '../../utils'; import ListSet from './list-set'; import type { VirtualListProps } from './'; export interface IProps extends Partial { children?: VirtualListProps['item']; direction?: 'ltr' | 'rtl' | 'horizontal' | 'vertical'; itemKey?: typeof defaultItemKey; itemTagName?: string; innerTagName?: string; outerTagName?: string; innerRef?: React.Ref | string; outerRef?: React.Ref | string; onItemsRendered?: TFunc; shouldResetStyleCacheOnItemSizeChange?: boolean; outerWrapper?: React.FC; } export default class Preset { protected props: IProps; protected refresh?: TFunc; itemList: ListSet; _id: string; _observer: Record; constructor(props: IProps, refresh?: TFunc); wrapperField: { scrollLeft: number; scrollTop: number; scrollHeight: number; scrollWidth: number; clientHeight: number; clientWidth: number; diffOffset: number; }; diffList: number[]; init(props: IProps): void; update(props: IProps): void; updateWrapper(id: string): Promise; set id(id: string); get id(): string; get isHorizontal(): boolean; get isRtl(): boolean; get isRelative(): boolean; get isBrick(): boolean; get placeholderCount(): number; get outerElement(): string | import("react").ComponentType; get innerElement(): string | import("react").ComponentType; get itemElement(): string | import("react").ComponentType; get field(): Record; set field(o: Record); get enhanced(): true; isShaking(diff?: number): boolean; resetCache(): void; getItemStyleCache: import("memoize-one").MemoizedFn<(this: any, itemIndex?: number, itemSize?: IProps['itemSize'] | false, _flag?: any) => CSS.Properties>; getItemStyle(index: number): CSS.Properties; boundaryDetection(): void; boundaryDetectionHelper({ component, event, id, }: { component?: TaroGeneral.IAnyObject; event?: () => void; id: string; }): IntersectionObserver; dispose(): void; }