import { Dom, NumberExt } from '@antv/x6-common'; import { Point, Rectangle } from '@antv/x6-geometry'; import { Base } from './base'; import { Cell } from '../model'; export declare class TransformManager extends Base { protected viewportMatrix: DOMMatrix | null; protected viewportTransformString: string | null; protected get container(): HTMLElement; protected get viewport(): SVGGElement; protected get stage(): SVGGElement; protected init(): void; /** * Returns the current transformation matrix of the graph. */ getMatrix(): DOMMatrix; /** * Sets new transformation with the given `matrix` */ setMatrix(matrix: DOMMatrix | Dom.MatrixLike | null): void; resize(width?: number, height?: number): this; getComputedSize(): { width: number; height: number; }; getScale(): Dom.Scale; scale(sx: number, sy?: number, ox?: number, oy?: number): this; clampScale(scale: number): number; getZoom(): number; zoom(factor: number, options?: TransformManager.ZoomOptions): this; getRotation(): Dom.Rotation; rotate(angle: number, cx?: number, cy?: number): this; getTranslation(): Dom.Translation; translate(tx: number, ty: number): this; setOrigin(ox?: number, oy?: number): this; fitToContent(gridWidth?: number | TransformManager.FitToContentFullOptions, gridHeight?: number, padding?: NumberExt.SideOptions, options?: TransformManager.FitToContentOptions): Rectangle; scaleContentToFit(options?: TransformManager.ScaleContentToFitOptions): void; scaleContentToFitImpl(options?: TransformManager.ScaleContentToFitOptions, translate?: boolean): void; getContentArea(options?: TransformManager.GetContentAreaOptions): Rectangle; getContentBBox(options?: TransformManager.GetContentAreaOptions): Rectangle; getGraphArea(): Rectangle; zoomToRect(rect: Rectangle.RectangleLike, options?: TransformManager.ScaleContentToFitOptions): this; zoomToFit(options?: TransformManager.GetContentAreaOptions & TransformManager.ScaleContentToFitOptions): this; centerPoint(x?: number, y?: number): void; centerContent(options?: TransformManager.GetContentAreaOptions): void; centerCell(cell: Cell): void | this; positionPoint(point: Point.PointLike, x: number | string, y: number | string): void; positionRect(rect: Rectangle.RectangleLike, pos: TransformManager.Direction): void | this; positionCell(cell: Cell, pos: TransformManager.Direction): void | this; positionContent(pos: TransformManager.Direction, options?: TransformManager.GetContentAreaOptions): void | this; } export declare namespace TransformManager { interface FitToContentOptions extends GetContentAreaOptions { minWidth?: number; minHeight?: number; maxWidth?: number; maxHeight?: number; contentArea?: Rectangle | Rectangle.RectangleLike; border?: number; allowNewOrigin?: 'negative' | 'positive' | 'any'; } interface FitToContentFullOptions extends FitToContentOptions { gridWidth?: number; gridHeight?: number; padding?: NumberExt.SideOptions; } interface ScaleContentToFitOptions extends GetContentAreaOptions { padding?: NumberExt.SideOptions; minScale?: number; maxScale?: number; minScaleX?: number; minScaleY?: number; maxScaleX?: number; maxScaleY?: number; scaleGrid?: number; contentArea?: Rectangle.RectangleLike; viewportArea?: Rectangle.RectangleLike; preserveAspectRatio?: boolean; } interface GetContentAreaOptions { useCellGeometry?: boolean; } interface ZoomOptions { absolute?: boolean; minScale?: number; maxScale?: number; scaleGrid?: number; center?: Point.PointLike; } type Direction = 'center' | 'top' | 'top-right' | 'top-left' | 'right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'left'; interface CenterOptions { padding?: NumberExt.SideOptions; } type PositionContentOptions = GetContentAreaOptions & CenterOptions; }