The surest method for solving your question from the point of view of the cartographic approach is to use the Voronoi Polygons.
I offer one of the solutions to your question using QGIS tools.
So, the initial data is a river as an areal object, see the figure below.
2) Vector > Geometry processing > Convert polygons into lines, see image below
3) Open the closed line QGIS "Split Features" tool and run the GRASS v.split tool, so that the points are evenly distributed along the line and run the Vector> Geometry Processing> Voronoi Polygons tool on them, see the figure below
or run the plugin with the name in the screenshot below, which is more convenient ...
4) Cut the original Voronoi polygons from the result with Vector > Geoprocessing > Trim and then select only one half of the river area, see the picture below using the Ctrl key and the selection tool more
Vector > Geoprocessing > Merge by grounds ... > By all indications.
5) Cut from the source layer the result of the selected left or the right area, see the picture below.
6) Then from the result of cutting create a line, blow it up, remove unnecessary parts and leave the centre line of the river, see figure below
This is the main approach to solving your question and it is clear that a variety of tools allows you to solve your question in various ways, but the idea remains the same, good luck ...