import * as React from 'react';
import { Entity } from '../../../DatabaseServices/Entity/Entity';
import { TemplateParam } from '../../../DatabaseServices/Template/Param/TemplateParam';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
import { IDrawBoardAutoCutOption } from "../../Store/OptionInterface/IOptionInterface";
import { ITemplateManage, ITemplateManageOption, TemplateManageOption } from '../../Store/OptionInterface/TemplateManageOption';
import { CommonPanel, IDirectoryProps } from '../SourceManage/CommonPanel';
import { IGetRoomInfo } from './GetRoomCabName';
export declare class TemplateManage extends React.Component<ITemplateManage, {}> {
    private option;
    autoCutOption: IDrawBoardAutoCutOption;
    private uiOption;
    private InitialOptionData;
    templateManageOption: ITemplateManageOption;
    private canCreateTemplate;
    private currentProps;
    private currentTemplateInfo;
    private TemplateDrawHingeTool;
    commonPanel: React.RefObject<CommonPanel>;
    currentDirId: string;
    curParams: TemplateParam[];
    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 findMatchingDirs;
    private getDirData;
    private noUseOverAllOptionsChange;
    private handleDelete;
    private renderTemplateList;
    handleHotKey: (e: KeyboardEvent) => void;
    private findMatchingItem;
    SetImageDefaultTemplate: (id: string) => void;
    GetOptionConfig(m_Option: ITemplateManageOption, autoCutOption: IDrawBoardAutoCutOption): TemplateManageOption;
    componentDidMount(): Promise<void>;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
/**
 *板名、柜名、房名 openDir跟随
 * @param {IGetRoomInfo} entInfo  替换前的模块信息
 * @param {TemplateRecord} newTemp 替换后的模块
 * @param {boolean} isHingeOrHandle 复合实体模块时 如果判断是否是IsDoor() 没通过,先判断是否为铰链把手 在判断name.includes("门")
 */
export declare function followAttribute(entInfo: IGetRoomInfo, newTemp: TemplateRecord, isHingeOrHandle?: boolean): void;
//# sourceMappingURL=TemplateComponent.d.ts.map