import * as CSS from 'csstype'; import { defaultItemKey } from '../../utils'; import ListMap from './list-map'; import type { IntersectionObserver } from '@tarojs/taro'; import type { VirtualWaterfallProps } from './'; export interface IProps extends Partial { children?: VirtualWaterfallProps['item']; itemKey?: typeof defaultItemKey; itemTagName?: string; innerTagName?: string; outerTagName?: string; outerRef?: React.Ref | string; onItemsRendered?: TFunc; shouldResetStyleCacheOnItemSizeChange?: boolean; outerWrapper?: React.FC; } export default class Preset { protected props: IProps; protected refresh?: TFunc; itemMap: ListMap; _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 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(itemIndex: number): CSS.Properties; boundaryDetection(): void; boundaryDetectionHelper({ component, event, id, }: { component?: TaroGeneral.IAnyObject; event?: () => void; id: string; }): IntersectionObserver; dispose(): void; }