import { DecorationsManager, Tree, TreeModel } from '../tree';
import { BasicCompositeTreeNode, BasicTreeNode } from './tree-node.define';
import { IBasicTreeData } from './types';
export interface IBasicTreeServiceOptions {
    treeName?: string;
}
export declare class BasicTreeService extends Tree {
    private _treeData?;
    private _resolveChildren?;
    private _sortComparator?;
    private treeOptions;
    private selectedDecoration;
    private focusedDecoration;
    private contextMenuDecoration;
    private loadingDecoration;
    private _focusedNode;
    private _selectedNodes;
    private _contextMenuNode;
    private _model;
    private _decorations;
    private disposableCollection;
    private decorationDisposableCollection;
    private onDidUpdateTreeModelEmitter;
    constructor(_treeData?: IBasicTreeData[] | undefined, _resolveChildren?: ((parent?: IBasicTreeData) => IBasicTreeData[] | null) | undefined, _sortComparator?: ((a: IBasicTreeData, b: IBasicTreeData) => number | undefined) | undefined, treeOptions?: IBasicTreeServiceOptions);
    private setUpTreeModel;
    private resetState;
    get onDidUpdateTreeModel(): import("@opensumi/ide-utils").Event<BasicTreeModel>;
    get model(): BasicTreeModel;
    get root(): import("../tree").CompositeTreeNode | undefined;
    get decorations(): DecorationsManager;
    private initDecorations;
    updateTreeData(treeData: IBasicTreeData[]): void;
    resolveChildren(parent?: BasicCompositeTreeNode): Promise<(BasicCompositeTreeNode | BasicTreeNode)[]>;
    sortComparator: (a: BasicCompositeTreeNode, b: BasicCompositeTreeNode) => number;
    private transformTreeNode;
    get selectedNodes(): (BasicCompositeTreeNode | BasicTreeNode)[];
    get focusedNode(): BasicCompositeTreeNode | BasicTreeNode | undefined;
    get contextMenuNode(): BasicCompositeTreeNode | BasicTreeNode | undefined;
    private clearDecoration;
    activeFocusedDecoration: (target: BasicCompositeTreeNode | BasicTreeNode) => void;
    activeContextMenuDecoration: (target: BasicCompositeTreeNode | BasicTreeNode) => void;
    enactiveFocusedDecoration: () => void;
    dispose(): void;
}
export declare class BasicTreeModel extends TreeModel {
}
//# sourceMappingURL=tree-service.d.ts.map