import { ITreeNode } from "@blueprintjs/core";
import React from "react";
import { TemplateRecord } from "../../../DatabaseServices/Template/TemplateRecord";
import { INeedUpdateParams } from "../Template/TemplateComponent";
interface TemplateParamState {
    nodes: ITreeNode[];
}
interface TemplateParamProps {
    selectTemplateId: number;
    inputRefs: HTMLInputElement[];
}
declare enum OutlineType {
    This = 0,
    Child = 1
}
export declare class TemplateParamPanel extends React.Component<TemplateParamProps, TemplateParamState> {
    private displayTemplateRootId;
    private currentTemplateId;
    private currentProps;
    private removeFuncs;
    private treeListScrollTop;
    private treeListHeight;
    private scrollCard;
    private templateObjIdSet;
    constructor(props: Readonly<TemplateParamProps>);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: TemplateParamProps): void;
    SetParamDetailInputRefs: (ref: HTMLInputElement) => void;
    GetCurrentTemplate(): TemplateRecord | undefined;
    UpdateCurrentProps(temp?: TemplateRecord): void;
    InitData(): void;
    Template2TreeNode: (template: TemplateRecord) => ITreeNode;
    private HandleNodeCollapse;
    private ShowContextMenu;
    private AddSpace;
    private RotateSpace;
    private BatchModifyCurrentLayerCabinetName;
    ModifyCabinetName: (tr: TemplateRecord, cabinetName: string) => void;
    private BatchModifyCurrentChildrenCabinetName;
    private HandleNodeSelect;
    private forEachNode;
    private GetAllChildFromThisTemplate;
    private DeleteTreeNode;
    OutlineSpace: (node: ITreeNode, type: OutlineType) => void;
    SeparateSpace: (nodeData: ITreeNode) => void;
    render(): JSX.Element;
}
export declare class TemplateParamDetail extends React.Component<{
    updateParams: INeedUpdateParams[];
    currentShowTemplate: TemplateRecord;
    callback: Function;
    setInputRefFunc: Function;
}> {
    basePtParam: {
        PX: {
            expr: string;
            val: string;
        };
        PY: {
            expr: string;
            val: string;
        };
        PZ: {
            expr: string;
            val: string;
        };
    };
    rotateParam: {
        RX: {
            expr: string;
            val: string;
        };
        RY: {
            expr: string;
            val: string;
        };
        RZ: {
            expr: string;
            val: string;
        };
    };
    isVisible: boolean;
    isVisualTemplate: boolean;
    private paramdef;
    private dangerInputTargets;
    componentDidMount(): void;
    componentDidUpdate(prevProps: {
        currentShowTemplate: TemplateRecord;
    }): void;
    private onKeydown;
    UpdateBasePtAndRotationParam(): void;
    GetAssociateBrNums(tr: TemplateRecord): number;
    ShowSplitType: (tr: TemplateRecord) => "X" | "Y" | "Z" | "空";
    ChangeInputUIClass: (e: HTMLInputElement, par: INeedUpdateParams) => void;
    CheckParamExpr: (par: INeedUpdateParams) => boolean;
    ApplyParamExpr: () => Promise<void>;
    render(): JSX.Element;
}
export {};
//# sourceMappingURL=TemplateParamPanel.d.ts.map