export interface D3SimulationNodeDatum{index?:number;x?:number;y?:number;vx?:number;vy?:number;fx?:number|null;fy?:number|null;}export interface D3SimulationLinkDatum{source:Node|string|number;target:Node|string|number;index?:number;}export interface D3ForceManyBody{strength(value:number|((node:Node)=>number)):this;}export interface D3ForceLink>{distance(value:number|((link:Link)=>number)):this;}export interface D3ForceCollide{radius(value:number|((node:Node)=>number)):this;}export interface D3ForceCenter{initialize?(nodes:D3SimulationNodeDatum[]):void;}export interface D3Simulation>{force(name:string,force:D3ForceLink |D3ForceManyBody |D3ForceCollide |D3ForceCenter):this;on(type:'tick',listener:()=>void):this;alphaTarget(value:number):this;restart():this;stop():this;alpha():number;alpha(value:number):this;alphaMin():number;tick(iterations?:number):this;}export interface D3ZoomTransform{readonly k:number;readonly x:number;readonly y:number;translate(x:number,y:number):D3ZoomTransform;scale(k:number):D3ZoomTransform;toString():string;}export interface D3Selection{call(behavior:unknown):this;node?():ElementType|null;datum?():Datum;}export interface D3ZoomBehavior{scaleExtent(extent:[number,number]):this;on(type:'start'|'end',listener:()=>void):this;on(type:'zoom',listener:(event:{transform:D3ZoomTransform;})=>void):this;transform(selection:D3Selection,transform:D3ZoomTransform):void;}export interface D3DragBehavior{on(type:'start'|'drag'|'end',listener:(event:{active:number;x:number;y:number;sourceEvent?:unknown;subject?:Datum;container?:ElementType;})=>void):this;}export interface D3Modules{forceSimulation>(nodes:Node[]):D3Simulation;forceLink>(links:Link[]):D3ForceLink;forceManyBody():D3ForceManyBody;forceCenter(x?:number,y?:number):D3ForceCenter;forceCollide():D3ForceCollide;drag():D3DragBehavior;zoom():D3ZoomBehavior; /** The identity transform (`k=1, x=0, y=0`) — the starting point for constructing an absolute * camera transform via `.translate(x, y).scale(k)`, used by `focusNode()`/`fit()`. */ zoomIdentity:D3ZoomTransform; /** Reads the transform currently bound to a DOM node via d3-zoom (its internal `__zoom` * datum) — used to read the current scale/position before tweening to a new one. */ zoomTransform(node:Element):D3ZoomTransform;select(node:ElementType):D3Selection;} /** * Resolves the optional peer dependencies `d3-force`/`d3-drag`/`d3-zoom`/ * `d3-selection` via the given importers (real dynamic imports by default). * Uncached and dependency-injectable so both the success path and the * caught-error warning path are directly testable without needing to * actually uninstall any of the four packages. */ export declare function loadD3Modules(importForce?:()=>Promise,importDrag?:()=>Promise,importZoom?:()=>Promise,importSelection?:()=>Promise):Promise; /** * Lazily loads the d3 peer dependencies (see `loadD3Modules()`) once per * page. Resolves to `null` if they aren't installed — mirrors * ``'s peer-dependency pattern. */ export declare function loadD3():Promise;