/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IListVirtualDelegate } from "../list/list.mjs";
import { AbstractTree, IAbstractTreeOptions } from "./abstractTree.mjs";
import { IList, IndexTreeModel } from "./indexTreeModel.mjs";
import { ITreeElement, ITreeModel, ITreeNode, ITreeRenderer } from "./tree.mjs";
import "../../../../css!./media/tree.mjs";
export interface IIndexTreeOptions<T, TFilterData = void> extends IAbstractTreeOptions<T, TFilterData> {
}
export declare class IndexTree<T, TFilterData = void> extends AbstractTree<T, TFilterData, number[]> {
    private rootElement;
    protected model: IndexTreeModel<T, TFilterData>;
    constructor(user: string, container: HTMLElement, delegate: IListVirtualDelegate<T>, renderers: ITreeRenderer<T, TFilterData, any>[], rootElement: T, options?: IIndexTreeOptions<T, TFilterData>);
    splice(location: number[], deleteCount: number, toInsert?: Iterable<ITreeElement<T>>): void;
    rerender(location?: number[]): void;
    updateElementHeight(location: number[], height: number): void;
    protected createModel(user: string, view: IList<ITreeNode<T, TFilterData>>, options: IIndexTreeOptions<T, TFilterData>): ITreeModel<T, TFilterData, number[]>;
}
