import { CSSProperties, PointerEvent, ReactNode, Ref } from 'react'; import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; export type PanZoomSlots = 'root' | 'content' | 'controls' | 'zoomOutButton' | 'zoomInButton' | 'resetButton'; /** Text PanZoom renders of its own, for translating it. */ export interface PanZoomLabels { /** Zoom in button, and its tooltip. */ zoomIn?: string; /** Zoom out button, and its tooltip. */ zoomOut?: string; /** Button back to the fitted view, and its tooltip. */ reset?: string; } /** Zooms a PanZoom from controls of your own. Does nothing while it is `disabled`. */ export interface PanZoomHandle { /** One step in, around the middle: the zoom in button. */ zoomIn: () => void; /** One step out, around the middle: the zoom out button. */ zoomOut: () => void; /** Back to the fitted view: the reset button. */ reset: () => void; /** 2x around the middle, or back to the fitted view when zoomed in: a double tap in the middle. */ toggle: () => void; } export interface PanZoomProps extends HtmlProps { /** What to zoom. A direct ``, ``, `