import { NodeObject, LinkObject, ThreeForceGraphGeneric } from 'three-forcegraph'; interface ConfigOptions { markerAttrs?: object; } // don't surface these internal props from inner ThreeForceGraph type ExcludedInnerProps = 'onLoading' | 'onFinishLoading' | 'onUpdate' | 'onFinishUpdate' | 'tickFrame' | 'd3AlphaTarget' | 'resetCountdown'; interface ForceGraphARGenericInstance = LinkObject> extends Omit, ExcludedInnerProps> { _destructor(): void; // Container layout width(): number; width(width: number): ChainableInstance; height(): number; height(height: number): ChainableInstance; yOffset(): number; yOffset(numMarkers: number): ChainableInstance; glScale(): number; glScale(glUnits: number): ChainableInstance; // Interaction onNodeHover(callback: (node: N | null, previousNode: N | null) => void): ChainableInstance; onLinkHover(callback: (link: L | null, previousLink: L | null) => void): ChainableInstance; onNodeClick(callback: (node: N) => void): ChainableInstance; onLinkClick(callback: (link: L) => void): ChainableInstance; } type ForceGraphARInstance = LinkObject> = ForceGraphARGenericInstance, NodeType, LinkType>; interface IForceGraphAR = LinkObject> { new(element: HTMLElement, configOptions?: ConfigOptions): ForceGraphARInstance; } declare const ForceGraphAR: IForceGraphAR; export { ForceGraphAR as default }; export type { ConfigOptions, ForceGraphARInstance };