import Graph, {Attributes, NodeMapper, EdgeMapper} from 'graphology-types'; type ModularityOptions< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes > = { getNodeCommunity?: | keyof NodeAttributes | NodeMapper; getEdgeWeight?: | keyof EdgeAttributes | EdgeMapper | null; resolution?: number; }; interface IModularity { < NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes >( graph: Graph, options?: ModularityOptions ): number; dense< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes >( graph: Graph, options?: ModularityOptions ): number; sparse< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes >( graph: Graph, options?: ModularityOptions ): number; undirectedDelta( M: number, communityTotalWeight: number, nodeDegree: number, nodeCommunityDegree: number ): number; directedDelta( M: number, communityTotalInWeight: number, communityTotalOutWeight: number, nodeInDegree: number, nodeOutDegree: number, nodeCommunityDegree: number ): number; } declare const modularity: IModularity; export default modularity;