import Graph, {Attributes} from 'graphology-types'; type MergeEdgeFunction<EdgeAttributes extends Attributes = Attributes> = ( currentEdgeAttributes: EdgeAttributes, conflictingEdgeAttributes: EdgeAttributes ) => EdgeAttributes; type ToSimpleOptions<EdgeAttributes extends Attributes = Attributes> = { mergeEdge: MergeEdgeFunction<EdgeAttributes>; }; export default function toSimple< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes, GraphAttributes extends Attributes = Attributes >( graph: Graph<NodeAttributes, EdgeAttributes, GraphAttributes>, mergeEdge?: MergeEdgeFunction<EdgeAttributes> ): Graph<NodeAttributes, EdgeAttributes, GraphAttributes>; export default function toSimple< NodeAttributes extends Attributes = Attributes, EdgeAttributes extends Attributes = Attributes, GraphAttributes extends Attributes = Attributes >( graph: Graph<NodeAttributes, EdgeAttributes, GraphAttributes>, options?: ToSimpleOptions<EdgeAttributes> ): Graph<NodeAttributes, EdgeAttributes, GraphAttributes>;