import { IRPCProtocol } from '@opensumi/ide-connection';
import { IDisposable } from '@opensumi/ide-core-common';
import { DataTransferDTO, IExtHostTreeView, TreeView, TreeViewItem } from '../../../common/vscode';
import { ExtHostCommands } from './ext.host.command';
import type { CancellationToken } from '@opensumi/ide-core-common';
import type vscode from 'vscode';
export declare class ExtHostTreeViews implements IExtHostTreeView {
    private readonly extHostCommand;
    private proxy;
    private treeViews;
    private treeDragAndDropService;
    constructor(rpc: IRPCProtocol, extHostCommand: ExtHostCommands);
    registerTreeDataProvider<T extends vscode.TreeItem>(treeViewId: string, treeDataProvider: vscode.TreeDataProvider<T>): IDisposable;
    createTreeView<T extends vscode.TreeItem>(treeViewId: string, options: vscode.TreeViewOptions<T>): TreeView<T>;
    /**
     * 获取子节点
     * @param treeViewId
     * @param treeItemId 可选参数，如果不传则获取根节点
     */
    $getChildren(treeViewId: string, treeItemId?: string): Promise<TreeViewItem[] | undefined>;
    /**
     * 获取子节点
     * @param treeViewId
     * @param treeItemId
     */
    $resolveTreeItem(treeViewId: string, treeItemId: string, token: CancellationToken): Promise<TreeViewItem | undefined>;
    /**
     * 设置节点展开属性
     * @param treeViewId
     * @param treeItemId
     * @param expanded
     */
    $setExpanded(treeViewId: string, treeItemId: string, expanded: boolean): Promise<any>;
    /**
     * 设置选中的节点
     * @param treeViewId
     * @param treeItemIds
     */
    $setSelection(treeViewId: string, treeItemIds: string[]): Promise<void>;
    /**
     * 设置节点是否可见
     * @param treeViewId
     * @param isVisible
     */
    $setVisible(treeViewId: string, isVisible: boolean): Promise<void>;
    /**
     * 设置节点的选择状态
     * @param treeViewId
     * @param items
     * @returns
     */
    $checkStateChanged(treeViewId: string, items: {
        treeItemId: string;
        checked: boolean;
    }[]): Promise<void>;
    $handleDrop(destinationViewId: string, requestId: number, treeDataTransferDTO: DataTransferDTO, targetItemHandle: string | undefined, token: CancellationToken, operationUuid?: string, sourceViewId?: string, sourceTreeItemHandles?: string[]): Promise<void>;
    private addAdditionalTransferItems;
    $handleDrag(sourceViewId: string, sourceTreeItemHandles: string[], operationUuid: string, token: CancellationToken): Promise<DataTransferDTO | undefined>;
}
//# sourceMappingURL=ext.host.treeview.d.ts.map