import { ElementRef } from '@angular/core';
export interface TransformState {
    origin: [OriginX, OriginY];
    translate: readonly [number, number];
    scale: number;
}
export interface Rects {
    canvasRect: Rect;
    surfaceRect: Rect;
}
export interface Rect {
    top: number;
    bottom: number;
    left: number;
    right: number;
    width: number;
    height: number;
    offsetTop: number;
    offsetLeft: number;
    offsetWidth: number;
    offsetHeight: number;
}
export type TransformAction = (transform: TransformState, rects: Rects) => Partial<TransformState>;
export type NodeID = string | number;
export interface GraphNode {
    getRect: () => Rect;
    el?: ElementRef<HTMLElement>;
}
export type OriginX = 'center' | 'left' | 'right';
export type OriginY = 'center' | 'top' | 'bottom';
export type NodeEdge = 'top' | 'bottom' | 'left' | 'right';
export type Points = [[number, number], [number, number]];
