Streaming remote read API usage with Go `remote.ReadClient`

Hello everyone! I need to write a client using the remote_read streaming API on Go. However, the solution to this problem is not entirely obvious. I couldn’t find any documentation on using remote.ReadClient for aggregated queries, filtered queries, and limited queries. Here is an example of my code that works (based on examples from some open projects on github):

	ctx := context.Background()

	readClient, err := remote.NewReadClient("remote-read-test", &remote.ClientConfig{
		URL:              &config.URL{URL: mustParseURL("http://localhost:9090/api/v1/read")},
		Timeout:          model.Duration(10 * time.Second),
		ChunkedReadLimit: cfg.DefaultChunkedReadLimit,
	})

	matchers, err := parser.ParseMetricSelector("{__name__=\"up\"}")
	if err != nil {
		log.Fatal(err)
	}

	now := time.Now()
	pbQuery, err := remote.ToQuery(
		int64(model.TimeFromUnixNano(now.Add(-10*time.Second).UnixNano())),
		int64(model.TimeFromUnixNano(now.UnixNano())),
		matchers,
		nil,
	)
	if err != nil {
		log.Fatal(err)
	}

    timeSeries, err := readClient.Read(ctx, pbQuery, false)

But this code only allows you to get the metrics themselves without using various Prometheus features. Can you tell me how I can make a request for metrics using the various functions of Prometheus itself?