import { AppObject, AppObjectRepo, AppObjectUC } from "@vived/core";
import { ParametricLine, ParametricPlane, Vector2, Vector3 } from "@vived/core";
import { UndoRedoEntity } from "../../UndoRedo";
import { Transform3D } from "../Entities";
export declare abstract class PanTransformUC extends AppObjectUC {
    static readonly type = "PanTransformUC";
    abstract minX?: number;
    abstract maxX?: number;
    abstract minY?: number;
    abstract maxY?: number;
    abstract dispatchStateChangeOnComplete: boolean;
    abstract submitUndoOnComplete: boolean;
    abstract enabled: boolean;
    abstract updatePixel: (pixel: Vector2) => void;
    abstract initializePixel: (pixel: Vector2) => void;
    abstract updateRay: (ray: ParametricLine) => void;
    abstract initializeRay: (ray: ParametricLine) => void;
    abstract finish: () => void;
    abstract cancelPan: () => void;
    static get(id: string, appObjects: AppObjectRepo): PanTransformUC | undefined;
}
export declare function makePanTransformUC(appObject: AppObject): PanTransformUC;
export declare class PanTransformUCImp extends PanTransformUC {
    minX?: number | undefined;
    maxX?: number | undefined;
    minY?: number | undefined;
    maxY?: number | undefined;
    enabled: boolean;
    protected panPlane: ParametricPlane;
    dispatchStateChangeOnComplete: boolean;
    submitUndoOnComplete: boolean;
    protected pickOffset: Vector3;
    protected initialPosition: Vector3;
    protected hasBeenInitialized: boolean;
    protected get transformNode(): Transform3D | undefined;
    protected get undoRedo(): UndoRedoEntity | undefined;
    protected get dispatchStateChange(): (() => void) | undefined;
    initializePixel: (initialPixelPos: Vector2) => void;
    updatePixel: (pixelPosition: Vector2) => void;
    initializeRay: (ray: ParametricLine) => void;
    updateRay: (ray: ParametricLine) => void;
    protected enforceBoundaries(wPos: Vector3): Vector3;
    finish: () => void;
    protected submitDispatchAndUndo(): void;
    cancelPan: () => void;
    constructor(appObject: AppObject);
}
//# sourceMappingURL=PanTransformUC.d.ts.map