import { GRID_PROPERTY_TYPES } from "@egjs/grid"; import { GROUP_TYPE } from "./consts"; import { GroupManagerStatus } from "./GroupManager"; import InfiniteGrid from "./InfiniteGrid"; import { InfiniteGridItem, InfiniteGridItemStatus } from "./InfiniteGridItem"; import { CategorizedGroup, InfiniteGridGroup, InfiniteGridInsertedItems, InfiniteGridItemInfo, RenderingOptions } from "./types"; export declare function isWindow(el: Window | Element): el is Window; export declare function isNumber(val: any): val is number; export declare function isString(val: any): val is string; export declare function isObject(val: any): val is object; export declare function flat(arr: T[][]): T[]; export declare function splitOptions(options: Record): { gridOptions: Record; }; export declare function splitGridOptions(options: Record): { gridOptions: Record; }; export declare function categorize(items: Item[]): CategorizedGroup[]; export declare function getNextCursors(prevKeys: Array, nextKeys: Array, prevStartCursor: number, prevEndCursor: number): { startCursor: number; endCursor: number; }; export declare function splitVirtualGroups(groups: Group[], direction: "start" | "end", nextGroups: CategorizedGroup[]): Group[]; export declare function getFirstRenderingItems(nextItems: InfiniteGridItemStatus[], horizontal: boolean): InfiniteGridItem[]; export declare function getRenderingItemsByStatus(groupManagerStatus: GroupManagerStatus, nextItems: InfiniteGridItemStatus[], usePlaceholder: boolean, horizontal: boolean): InfiniteGridItem[]; export declare function mountRenderingItems(items: InfiniteGridItemInfo[], options: RenderingOptions): void; export declare function getRenderingItems(items: InfiniteGridItemInfo[], options: RenderingOptions): InfiniteGridItem[]; export declare function InfiniteGridGetterSetter(component: { prototype: InfiniteGrid; propertyTypes: typeof GRID_PROPERTY_TYPES; }): void; export declare function makeKey(registeredKeys: Record): string; export declare function convertHTMLtoElement(html: string): HTMLElement[]; export declare function convertInsertedItems(items: InfiniteGridInsertedItems, groupKey?: string | number): InfiniteGridItemInfo[]; export declare function toArray(nodes: HTMLCollection): HTMLElement[]; export declare function toArray(nodes: { length: number; [key: number]: T; }): T[]; export declare function findIndex(arr: T[], callback: (value: T, index: number) => boolean): number; export declare function findLastIndex(arr: T[], callback: (value: T, index: number) => boolean): number; export declare function getItemInfo(info: InfiniteGridItemInfo): InfiniteGridItemInfo; export declare function setPlaceholder(item: InfiniteGridItem, info: InfiniteGridItemStatus): void; export declare function isFlatOutline(start: number[], end: number[]): boolean; export declare function range(length: number): number[]; export declare function flatGroups(groups: InfiniteGridGroup[]): InfiniteGridItem[]; export declare function filterVirtuals(items: T[], includePlaceholders?: boolean): T[]; /** * Decorator that makes the method of InfiniteGrid available in the framework. * @ko 프레임워크에서 InfiniteGrid의 메소드를 사용할 수 있게 하는 데코레이터. * @private * @example * ```js * import { withInfiniteGridMethods } from "@egjs/infinitegrid"; * * class Grid extends React.Component> { * @withInfiniteGridMethods * private grid: NativeGrid; * } * ``` */ export declare const withInfiniteGridMethods: (prototype: any, memberName: string) => void;