import { TreeNodeInfo } from '@blueprintjs/core';
import * as React from 'react';
import { ITempTagProps } from '../../../Add-on/Template/TemplateTagCommand';
import { DirectoryId } from '../../../Common/Request';
import { EOrderType } from '../../../Editor/OrderType';
import { IDrawerDoorTempInfo } from '../../Store/DoorInterface';
import { IDir, TemplateManageUiOption } from '../../Store/OptionInterface/TemplateManageOption';
import ResourceStore from '../ToolBar/ResourceLibrary/RsourceStore';
import { DirIds, DirTreeComponent } from './DirTreeComponent';
import './TexturePanel.less';
export declare const OrderType: {
    label: string;
    value: EOrderType;
}[];
export interface IDirectoryProps {
    id: DirectoryId | string;
    path: string;
    pathNum: number[];
}
export interface ICommonPanelState {
    nodes: TreeNodeInfo[];
    defaultDirName: string;
    updateNode: TreeNodeInfo;
    isSelectAll: boolean;
    searchStr: string;
    searchDir: boolean;
}
export interface ICommonPanelProps {
    isRightMaterialPanel?: boolean;
    defaultDirId: string;
    canDelete?: boolean;
    deleteUrl: string;
    getUrl: string;
    renderNav?: () => JSX.Element;
    renderMenuItems?: () => JSX.Element;
    clickTree?: () => void;
    delete?: (data: any) => void;
    canOrder?: boolean;
    maxDirLength?: number;
    copyUrl?: string;
    dirNameFilter?: string[];
    loadCacheDirKey?: string;
    currentTag?: ITempTagProps;
    currentInfo?: IDrawerDoorTempInfo;
    uiOption?: TemplateManageUiOption;
    resourceStore?: ResourceStore;
    resourceListMap?: Map<string, string>;
    handleDirComponent?: React.ReactElement;
    perPageCount: number;
    getDirData?: (dirs: IDir[]) => void;
    getCurrentDirId?: (id: string) => void;
}
export declare class CommonPanelEventBus {
    private static _SingleInstance;
    static GetInstance(): CommonPanelEventBus;
    UpdateEvent(url: string, isdelete?: boolean): void;
}
/**
 * 贴图,材质面板通用组件,左边目录右边数据列表
 */
export declare class CommonPanel extends React.Component<ICommonPanelProps, ICommonPanelState> {
    static defaultProps: Partial<ICommonPanelProps>;
    static CurrentDirCache: Map<string, IDirectoryProps>;
    private ColResizeEl;
    private selectContainer;
    private startHandleDir;
    private timeId;
    private dataList;
    private _dragId;
    private selectTool;
    private idKey;
    private copyIds;
    private isPreventDrag;
    private dirResolve;
    private isAddDirectory;
    private defaultDirName;
    private touchEventEditor;
    _isFromResource: boolean;
    private loading;
    private showInfos;
    selectIds: Set<string>;
    currentDir: IDirectoryProps;
    pageData: {
        count: number;
        currentPage: number;
        pageCount: number;
    };
    searchedDirs: IDirectoryProps[];
    isSmallScreen: boolean;
    handleOpenDrawer: import("mobx").IObservableValue<boolean>;
    DirTreeRef: React.RefObject<DirTreeComponent>;
    _Events: Function[];
    private watchDir;
    private LoadingDataPromise;
    constructor(props: any);
    get IsCtrlDown(): boolean;
    GetScreenSize: () => void;
    NotifyChangeEvent(isdelete?: boolean): void;
    UNSAFE_componentWillMount(): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: Readonly<ICommonPanelProps>, prevState: Readonly<ICommonPanelState>, snapshot?: any): void;
    private renderNavbar;
    private readerNavbarMin;
    private renderHandleDirComponent;
    private renderDirTree;
    private renderDataList;
    private renderRightMaterialPanel;
    render(): JSX.Element;
    private UpdateOrder;
    private handleResize;
    private handleSelectAll;
    private handleSelectData;
    SetCurDir: (dir_id: string, firstRender: boolean) => Promise<void>;
    UpdataDirTree: (nodes: TreeNodeInfo<{}>[]) => void;
    private forEachNode;
    onNodeClick: (isReLoad: boolean, isSecondaryLabel: boolean) => Promise<void>;
    private handleDir;
    private AddDir;
    handleAddDir: (currentNodesChildNodes: TreeNodeInfo[], isAddDirectory: boolean) => Promise<boolean>;
    private RenameDir;
    private handleRenameDir;
    handleDeleteDir: (currentDir: IDirectoryProps) => Promise<boolean>;
    handleMoveDir: (dirIds: DirIds) => Promise<boolean>;
    private showContextMenu;
    onNodeContainerClick: () => void;
    onMoveFileToDir: (targetId: string) => Promise<void>;
    GetSecondaryLabel: () => {
        secondaryLabel: string | JSX.Element;
    };
    private parseNodes;
    handleSearch: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
    /**
    * 服务段获取数据
    * name-查询字符串,curr_page-当前页,dir_id:目录id
    *  desc 倒序
    */
    handleGetData: (queryData?: {
        dir_id?: string;
        name?: string;
        curr_page?: number;
    }) => Promise<void>;
    private AddPathByFileInfos;
    private getPath;
    private getSelectDataIds;
    private handDeleteData;
    private handleDragStart;
    private sendDir;
    private handleKeydown;
    private _isPasted;
    private copy;
    private paste;
    private toggleSearch;
    private searchDir;
    private clickSearchDir;
    private loadCurrentNode;
    private loadingData;
}
//# sourceMappingURL=CommonPanel.d.ts.map