import * as React from 'react';
import { Cell } from './elements';
import { Vector } from './geometry';
import { DiagramModel } from './model';
export interface PaperProps {
    model: DiagramModel;
    paperTransform: PaperTransform;
    onPointerDown?: (e: React.PointerEvent<HTMLElement>, cell: Cell | undefined) => void;
    onContextMenu?: (e: React.MouseEvent<HTMLElement>, cell: Cell | undefined) => void;
    onScrollCapture?: (e: React.UIEvent<HTMLElement>, cell: Cell | undefined) => void;
    children: React.ReactNode;
}
export declare class Paper extends React.Component<PaperProps> {
    render(): import("react/jsx-runtime").JSX.Element;
    private onPointerDown;
    private onContextMenu;
    private onScrollCapture;
}
export interface PaperTransform {
    readonly width: number;
    readonly height: number;
    readonly originX: number;
    readonly originY: number;
    readonly scale: number;
    readonly paddingX: number;
    readonly paddingY: number;
}
export interface HtmlPaperLayerProps extends React.HTMLProps<HTMLDivElement> {
    paperTransform: PaperTransform;
    layerRef?: React.Ref<HTMLDivElement | null>;
}
export declare function HtmlPaperLayer(props: HtmlPaperLayerProps): import("react/jsx-runtime").JSX.Element;
export interface SvgPaperLayerProps extends React.HTMLProps<SVGSVGElement> {
    paperTransform: PaperTransform;
    layerRef?: React.RefObject<SVGSVGElement | null>;
}
export declare function SvgPaperLayer(props: SvgPaperLayerProps): import("react/jsx-runtime").JSX.Element;
export declare function totalPaneSize(pt: PaperTransform): Vector;
export declare function paneTopLeft(pt: PaperTransform): Vector;
export declare function paneFromPaperCoords(paper: Vector, pt: PaperTransform): Vector;
export declare function paperFromPaneCoords(pane: Vector, pt: PaperTransform): Vector;
//# sourceMappingURL=paper.d.ts.map