import { PointF, IPoint, RectangleF } from "@aurigma/design-atoms-model/Math";
import { IWorkspaceContext } from "../IWorkspaceContext";
import { IViewportContext } from "../IViewportContext";
export interface IRulersContext {
    rulerEnabled: boolean;
    rulerWidth: number;
}
export interface IViewer {
    element: HTMLElement;
}
export declare class CoordinatesConvertUtils {
    static workspaceToContentPoint(point: PointF, context: IViewportContext): PointF;
    static controlToContentPoint(point: PointF, context: IViewportContext): PointF;
    static controlToPagePoint(point: PointF | IPoint, viewerElement: HTMLElement): PointF;
    static contentToControlPoint(point: PointF, context: IViewportContext): PointF;
    static controlToContentRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
    static contentToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
    static workspaceToControlPoint(point: PointF, context: IViewportContext): PointF;
    static productToControlPoint(point: PointF, context: IViewportContext, offset: PointF): PointF;
    static workspaceToWhiteSpacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF;
    static workspaceToWhiteSpacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF;
    static whitespaceToWorkspacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF;
    static whitespaceToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF;
    static controlToWorkspacePoint(point: PointF, context: IViewportContext): PointF;
    static controlToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext): PointF;
    static workspaceToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
    static pageToControlPoint(pagePoint: PointF, viewer: IViewer): PointF;
    static pageToWorkspacePoint(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext, dontRotate?: boolean): PointF;
    static pageToWhitespace(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext & IRulersContext): PointF;
    static workspaceToPagePoint(source: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext): PointF;
    private static _transformByContentAnglePageToWs;
    private static _transformByContentAngleWsToPage;
    static workspaceToControlPointCorrect(source: PointF, context: IViewportContext & IWorkspaceContext): PointF;
    static controlToWorkspaceRectangle(rectangle: RectangleF, context: IViewportContext): RectangleF;
    static contentToWhitespaceRectangle(rect: RectangleF, context: IRulersContext & IViewportContext): RectangleF;
    static workspaceToProduct(workspacePoint: PointF, offset?: PointF): PointF;
    static productToWorkspace(product: PointF, offset?: PointF): PointF;
    static getElementPageCoord(domElement: HTMLElement): {
        left: number;
        top: number;
    };
}
