import * as React from 'react';
import { ITempTagProps } from '../../../Add-on/Template/TemplateTagCommand';
import { R2bReplaceProps } from '../../../Add-on/twoD2threeD/R2bConfigComponent';
import { Entity } from '../../../DatabaseServices/Entity/Entity';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
import { IBaseOption, IDrawBoardAutoCutOption } from "../../Store/OptionInterface/IOptionInterface";
import { TempalteEditorStore } from '../../Store/TemplateEditorStore';
import { CommonPanel, IDirectoryProps } from '../SourceManage/CommonPanel';
import { IGetRoomInfo } from './GetRoomCabName';
export interface ITemplateManage {
    store?: TempalteEditorStore;
    currentTag?: ITempTagProps;
    R2bReplace?: R2bReplaceProps;
    type: "Administration" | "Collection";
}
export interface TemplateManageUiOption {
    navigationWidth: string;
    showTag: boolean;
}
export interface ITemplateManageOption extends IBaseOption {
    option: IGetRoomInfo;
    autoCutOption: IDrawBoardAutoCutOption;
    uiOption: TemplateManageUiOption;
    perPageCount: number;
}
export declare class TemplateManage extends React.Component<ITemplateManage, {}> {
    private option;
    private autoCutOption;
    private uiOption;
    templateManageOption: ITemplateManageOption;
    private canCreateTemplate;
    private currentProps;
    private currentTemplateInfo;
    private TemplateDrawHingeTool;
    commonPanel: React.RefObject<CommonPanel>;
    constructor(props: any);
    private renderNav;
    private renderMenuItems;
    handleMutDown: () => Promise<void>;
    private startCreateTemplate;
    handleTemplate: (name: string, currentDir: IDirectoryProps, callback: Function) => Promise<void>;
    private uploadTemplate;
    private handleRenameTemplate;
    private GetTempalteAndUpdate;
    private handleInsert;
    private handleInsertByBasePt;
    private SetRootCabName;
    private handleInsertBySpace;
    private DrawKuGanBySpace;
    private handleEditor;
    private handleReplace;
    private handleR2bRepalce;
    private handleInsertHandleOrHinge;
    /**
     * 继承被替换门板 的关联铰链
     * @param  hinges 被替换的门板中的关联铰链
     * @param  templateEnts 新门板模板中的Ents
     */
    private extendRelativeHinge;
    /**
     * 继承被替换门板 的关联拉手
     * @param  handles 被替换的门板中的关联拉手
     * @param  templateEnts 新门板模板中的Ents
     */
    private ExtendRelativeHandle;
    /**
     * 继承被替换铰链 的关联(切割)板
     * @param hardwareEnt  被替换的铰链            (旧)
     * @param templateEnts 替换的铰链的模板中的Ents (新)
     */
    private extendRelativeBoard;
    /**
        * 继承被替换拉手 的关联(切割)板
        * @param handleEnt  被替换的拉手              (旧)
        * @param templateEnts 替换的拉手的模板中的Ents (新)
        */
    private ExtendHandleRelativeBoard;
    getSpaceAllEntitys(door: Entity): Entity[];
    private renderBody;
    private renderTemplateCollection;
    private renderTemplateList;
    handleHotKey: (e: KeyboardEvent) => void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
/**
 *板名、柜名、房名 openDir跟随
 * @param {IGetRoomInfo} entInfo  替换前的模块信息
 * @param {TemplateRecord} newTemp 替换后的模块
 */
export declare function followAttribute(entInfo: IGetRoomInfo, newTemp: TemplateRecord): void;
//# sourceMappingURL=TemplateComponent.d.ts.map