import { AbstractUiComponent } from "./AbstractUiComponent";
import { TeamAppsEvent } from "./util/TeamAppsEvent";
import { TeamAppsUiContext } from "./TeamAppsUiContext";
import { UiInfiniteItemView_ContextMenuRequestedEvent, UiInfiniteItemView_DisplayedRangeChangedEvent, UiInfiniteItemView_ItemClickedEvent, UiInfiniteItemViewCommandHandler, UiInfiniteItemViewConfig, UiInfiniteItemViewEventSource } from "../generated/UiInfiniteItemViewConfig";
import { UiTemplateConfig } from "../generated/UiTemplateConfig";
import { UiItemJustification } from "../generated/UiItemJustification";
import { UiVerticalItemAlignment } from "../generated/UiVerticalItemAlignment";
import { UiComponent } from "./UiComponent";
import { UiTableClientRecordConfig } from "../generated/UiTableClientRecordConfig";
export interface TableDataProviderItem extends UiTableClientRecordConfig {
    children: TableDataProviderItem[];
    depth: number;
    parentId: number;
    expanded: boolean;
}
export declare class UiInfiniteItemView extends AbstractUiComponent<UiInfiniteItemViewConfig> implements UiInfiniteItemViewCommandHandler, UiInfiniteItemViewEventSource {
    readonly onDisplayedRangeChanged: TeamAppsEvent<UiInfiniteItemView_DisplayedRangeChangedEvent>;
    readonly onItemClicked: TeamAppsEvent<UiInfiniteItemView_ItemClickedEvent>;
    readonly onContextMenuRequested: TeamAppsEvent<UiInfiniteItemView_ContextMenuRequestedEvent>;
    private $mainDomElement;
    private $grid;
    private grid;
    private dataProvider;
    private itemTemplateRenderer;
    private uuid;
    private horizontalItemMargin;
    private itemWidth;
    private itemJustification;
    private verticalItemAlignment;
    private contextMenu;
    constructor(config: UiInfiniteItemViewConfig, context: TeamAppsUiContext);
    private createGrid;
    private createDisplayRangeChangedEvent;
    private getCurrentlyDisplayedRecordIds;
    private calculateItemWidthInPixels;
    addData(startIndex: number, data: any[], totalNumberOfRecords: number, clearTableCache: boolean): void;
    private redrawGridContents;
    private updateAutoHeight;
    removeData(ids: number[]): void;
    onResize(): void;
    private getAvailableWidth;
    doGetMainElement(): HTMLElement;
    private updateStyles;
    setHorizontalItemMargin(horizontalItemMargin: number): void;
    setVerticalItemAlignment(verticalItemAlignment: UiVerticalItemAlignment): void;
    setItemTemplate(itemTemplate: UiTemplateConfig): void;
    setItemWidth(itemWidth: number): void;
    setItemJustification(itemJustification: UiItemJustification): void;
    setContextMenuContent(requestId: number, component: UiComponent): void;
    closeContextMenu(requestId: number): void;
}
