import { NumericInput } from "@blueprintjs/core";
import React from "react";
import { Vector3 } from "three";
import { Entity } from "../../../../DatabaseServices/Entity/Entity";
import { AxisType } from "../../../../Editor/TranstrolControl/CoorAxes";
import ModifyModelStore from "./ModifyModelStore";
import { ModuleAxis } from "./ModuleBaseParams";
interface SizeComponentProps {
    store: ModifyModelStore;
    sizeKey: (keyof ModifyModelStore) & ("module_Length" | "module_Height" | "module_Width");
    title: string;
}
export declare class SizeComponent extends React.Component<SizeComponentProps> {
    sizeRef: React.RefObject<NumericInput>;
    disposeAutorun: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    ChangeModuleSize: () => void;
    render(): JSX.Element;
}
interface PositionInputProps {
    store: ModifyModelStore;
    postionKey: (keyof ModifyModelStore) & ("positionX" | "positionY" | "positionZ");
    type: ModuleAxis;
}
export declare class PositionInput extends React.Component<PositionInputProps> {
    positionRef: React.RefObject<HTMLInputElement>;
    disposeAutorun: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    MoveModules: (e: React.PointerEvent<HTMLElement>, axis: ModuleAxis) => Promise<void>;
    ChangePosition: (axis: ModuleAxis) => Promise<void>;
    render(): JSX.Element;
}
interface RotateInputProps {
    store: ModifyModelStore;
    rotateKey: (keyof ModifyModelStore) & ("rotateX" | "rotateY" | "rotateZ");
    type: AxisType;
}
export declare class RotateInput extends React.Component<RotateInputProps> {
    rotateRef: React.RefObject<NumericInput>;
    disposeAutorun: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    RotateModules: (e: React.PointerEvent<HTMLDivElement>, index: AxisType) => Promise<void>;
    UpdateRotate: (angle: number, index: AxisType, cen: Vector3, axis: Vector3, ents: Entity[]) => void;
    StickyRotateDeg: (value: number) => number;
    ChangeRotate: (index: AxisType) => void;
    render(): JSX.Element;
}
export {};
//# sourceMappingURL=ModelCommon.d.ts.map