import { AppObject, AppObjectRepo, AppObjectUC } from "@vived/core";
import { ParametricLine, Quaternion, Vector3 } from "@vived/core";
import { UndoRedoEntity } from "../../UndoRedo";
import { Transform3D } from "../Entities/Transform3D";
export declare abstract class MoveTransformUC extends AppObjectUC {
    static readonly type = "MoveTransformUC";
    abstract dispatchStateChangeOnComplete: boolean;
    abstract submitUndoOnComplete: boolean;
    abstract initialize(helper: Transform3D): void;
    abstract update(helper: Transform3D, ray: ParametricLine): void;
    abstract finish(): void;
    abstract cancel(): void;
    static get(id: string, appObjects: AppObjectRepo): MoveTransformUC | undefined;
}
export declare function makeMoveTransform(appObject: AppObject): MoveTransformUC;
export declare class MoveTransformUCImp extends MoveTransformUC {
    dispatchStateChangeOnComplete: boolean;
    submitUndoOnComplete: boolean;
    protected get transform(): Transform3D | undefined;
    protected get undoRedo(): UndoRedoEntity | undefined;
    protected get dispatchStateChange(): (() => void) | undefined;
    protected initialPos: Vector3;
    protected initialRotation: Quaternion;
    protected isDragging: boolean;
    protected didDrag: boolean;
    initialize(helper: Transform3D): void;
    update(helper: Transform3D, ray: ParametricLine): void;
    finish(): void;
    cancel(): void;
    protected submitDispatchAndUndo(): void;
    constructor(appObject: AppObject);
}
//# sourceMappingURL=MoveTransformUC.d.ts.map