import Graph, {Attributes, EdgeMapper} from 'graphology-types'; type RNGFunction = () => number; type PointerArray = Uint8Array | Uint16Array | Uint32Array | Float64Array; export type LouvainOptions< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes > = { nodeCommunityAttribute?: string; getEdgeWeight?: | keyof EdgeAttributes | EdgeMapper | null; fastLocalMoves?: boolean; randomWalk?: boolean; resolution?: number; rng?: RNGFunction; }; type LouvainMapping = {[node: string]: number}; export type DetailedLouvainOutput = { communities: LouvainMapping; count: number; deltaComputations: number; dendrogram: Array; modularity: number; moves: Array> | Array; nodesVisited: number; resolution: number; }; interface ILouvain< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes > { ( graph: Graph, options?: LouvainOptions ): LouvainMapping; assign( graph: Graph, options?: LouvainOptions ): void; detailed( graph: Graph, options?: LouvainOptions ): DetailedLouvainOutput; } declare const louvain: ILouvain; export default louvain;