import * as d3 from '../d3Modules'; /** Égalité (à epsilon près) de deux transforms de zoom (k, x, y). */ export declare function sameZoomTransform(a: d3.ZoomTransform, b: d3.ZoomTransform): boolean; /** * Transform de zoom qui cadre `bounds` (coords monde) dans `viewport` (px écran) avec une * `margin` px, en préservant le ratio (échelle bornée à [0.05, 20], identique au scaleExtent du * zoomListener). `top_offset` décale verticalement (barres/topbar réservées). */ export declare function fitTransform(bounds: { x: number; y: number; width: number; height: number; }, viewport: { width: number; height: number; top_offset: number; }, margin: number): d3.ZoomTransform; /** * Transform de zoom qui place le point MONDE `world` sous le point ÉCRAN `screen` à l'échelle * `k` (screen = k·world + translate ⇒ translate = screen − k·world). Sert au centrage caméra * (flyToNode : centre d'un nœud amené au centre du viewport). */ export declare function centerTransform(world: { x: number; y: number; }, screen: { x: number; y: number; }, k: number): d3.ZoomTransform; /** * Décale un transform d'un déplacement MONDE (dx, dy) tout en préservant le rendu à l'écran : * quand toutes les positions monde sont translatées de (dx, dy) (cf. recenter), ce transform * corrigé (x' = x − k·dx) reproduit EXACTEMENT l'image d'avant-décalage sur les nouvelles * positions — point de départ sans saut pour l'animation de recentrage. */ export declare function shiftTransformByWorldDelta(t: d3.ZoomTransform, dx: number, dy: number): d3.ZoomTransform; /** * Projection d'un point MONDE vers l'ÉCRAN sous le transform de caméra `t` * (screen = t.translate + world·k). Primitive de base du modèle « caméra sur monde immuable ». */ export declare function worldToScreen(t: d3.ZoomTransform, x: number, y: number): { x: number; y: number; }; /** * Projection inverse ÉCRAN → MONDE sous le transform de caméra `t` * (world = (screen − t.translate) / k). Inverse exacte de worldToScreen (k ≠ 0 supposé). */ export declare function screenToWorld(t: d3.ZoomTransform, x: number, y: number): { x: number; y: number; };