import '../modules/zoom-listener'; import { VirtualElement } from './'; export declare const DEFAULT_ITEM_SIZE = 50; /** * @deprecated */ export declare enum DIRECTION { VERTICAL = "vertical", HORIZONTAL = "horizontal" } export interface Reusable { wrapperElement: HTMLElement; renderer: VanillaRecyclerViewRenderer; } export interface SizeParams { api: VanillaRecyclerView; data: T; index: number; } export interface InitializeParams { api: VanillaRecyclerView; data: T; index: number; } export interface MountParams { api: VanillaRecyclerView; data: T; index: number; } export interface UnmountParams { api: VanillaRecyclerView; data: T; index: number; } export interface VanillaRecyclerViewRenderer { initialize: (params: InitializeParams) => void; getLayout: () => HTMLElement; getId?: () => string; getPosition?: () => string; onMount?: (params: MountParams) => boolean; onUnmount?: (params: UnmountParams) => void; } export interface RendererConstructor { new (): VanillaRecyclerViewRenderer; } export interface VanillaRecyclerViewOptions { data: T[]; direction?: DIRECTION; preload?: number; /** * @deprecated */ size?: ((params: SizeParams) => number) | number; renderer: RendererConstructor; } export interface VanillaRecyclerViewAPI { calculateSize: () => void; getMaxScrollSize: () => number; splice: (start: number, end?: number) => void; insert: (index: number, ...data: T[]) => void; push: (...items: T[]) => void; } export declare class VanillaRecyclerView implements VanillaRecyclerViewAPI { private root; _direction: DIRECTION; _preload: number; _size: ((params: SizeParams) => number) | number; _renderer: RendererConstructor; container: HTMLDivElement; virtualElements: VirtualElement[]; mountedVirtualElements: VirtualElement[]; pendingUnmount: VirtualElement[]; reusables: Reusable[]; constructor(root: HTMLDivElement, options: VanillaRecyclerViewOptions); private onScroll; /** * parse size option * @param data */ private getSize; private createReusable; private getNextReusable; setData(data: T[]): void; calculateSize(): void; getMaxScrollSize(): number; /** * @deprecated */ splice(start: number, end?: number): void; /** * @deprecated */ insert(index: number, ...data: T[]): void; /** * @deprecated */ push(...items: T[]): void; } //# sourceMappingURL=recycler-view.d.ts.map