import { AppObject, AppObjectUC } from "@vived/core";
import { ParametricLine } from "@vived/core";
import { SceneRayPickUC } from "../../Babylon";
import { MoveTransformUC } from "./MoveTransformUC";
export declare abstract class TryMoveTransformUC extends AppObjectUC {
    static readonly type = "TryMoveTransformUC";
    abstract allow(): boolean;
    abstract tryWithRay(ray: ParametricLine): boolean;
    abstract moveWithRay(ray: ParametricLine): void;
    abstract stop(): void;
    abstract cancel(): void;
}
export declare function makeTryMoveTransformUC(appObject: AppObject): TryMoveTransformUC;
export declare class TryMoveTransformUCImp extends TryMoveTransformUC {
    protected moveUC?: MoveTransformUC;
    protected get rayPickUC(): SceneRayPickUC | undefined;
    private helperTransform;
    allow: () => boolean;
    tryWithRay: (pickRay: ParametricLine) => boolean;
    moveWithRay: (pickRay: ParametricLine) => void;
    stop: () => void;
    cancel: () => void;
    constructor(appObject: AppObject);
}
//# sourceMappingURL=TryMoveTransformUC.d.ts.map