import Component from "@egjs/component";
import { IJQuery, ILayout, StyleType, IInfiniteGridItem, IInfiniteGridStatus, IItem, IArrayFormat, IInfiniteGridOptions, InfiniteGridEvents } from "./types";
declare class InfiniteGrid extends Component<InfiniteGridEvents> {
    static VERSION: string;
    options: IInfiniteGridOptions;
    private _loadingBar;
    private _itemManager;
    private _renderer;
    private _renderManager;
    private _layout;
    private _watcher;
    private _infinite;
    private _status;
    private _requestGroups;
    constructor(element: HTMLElement | string | IJQuery, options?: Partial<IInfiniteGridOptions>);
    append(elements: HTMLElement[] | IJQuery | string[] | string, groupKey?: string | number): this;
    prepend(elements: HTMLElement[] | IJQuery | string[] | string, groupKey?: string | number): this;
    setLayout(LayoutKlass: ILayout | (new (...args: any[]) => ILayout), options?: {}): this;
    getItems(includeCached?: boolean): IInfiniteGridItem[];
    getRenderingItems(): IInfiniteGridItem[];
    beforeSync(items: IItem[]): "" | "relayout" | "layout";
    sync(elements: IArrayFormat<HTMLElement>): void;
    layout(isRelayout?: boolean): this;
    removeByIndex(groupIndex: number, itemIndex: number, isLayout?: boolean): IInfiniteGridItem[];
    remove(element: HTMLElement, isLayout?: boolean): IInfiniteGridItem[];
    getGroupKeys(includeCached?: boolean): (string | number)[];
    getStatus(startKey?: string | number, endKey?: string | number): IInfiniteGridStatus;
    setStatus(status: IInfiniteGridStatus, applyScrollPos?: boolean, syncElements?: HTMLElement[]): this;
    clear(): this;
    setLoadingBar(userLoadingBar?: {
        append?: string | HTMLElement;
        prepend?: string | HTMLElement;
    } | string): this;
    isProcessing(): boolean;
    isLoading(): boolean;
    getLoadingBar(isAppend?: boolean): HTMLElement | undefined;
    startLoading(isAppend?: boolean, userStyle?: StyleType): this;
    endLoading(userStyle?: StyleType): this;
    getItem(groupIndex?: HTMLElement | number, itemIndex?: number): IInfiniteGridItem | undefined;
    updateItem(groupIndex?: number, itemIndex?: number): this;
    updateItems(): this;
    moveTo(index: number, itemIndex?: number): this;
    destroy(): void;
    private _relayout;
    private _setContainerSize;
    private _appendLoadingBar;
    private _setSize;
    private _fitItems;
    private _fit;
    private _getEdgeValue;
    private _isProcessing;
    private _getLoadingStatus;
    private _process;
    private _insert;
    private _insertItems;
    private _recycle;
    private _renderLoading;
    private _updateItem;
    private _setScrollPos;
    private _scrollTo;
    private _postCache;
    private _postLayout;
    private _requestAppend;
    private _requestPrepend;
    private _onResize;
    private _setCursor;
    private _onCheck;
    private _onLayoutComplete;
    private _reset;
}
export default InfiniteGrid;
