func NewClient(
	timeout time.Duration,
	longPollTimeout time.Duration,
	clients common.ClientCache,
	lb LoadBalancer,
) matchingservice.MatchingServiceClient {
	return &clientImpl{
		timeout:         timeout,
		longPollTimeout: longPollTimeout,
		clients:         clients,
		loadBalancer:    lb,
	}
}
NewClient creates a new history service TChannel client
package matching
import (
	"context"
	"time"
	enumspb "go.temporal.io/api/enums/v1"
	"google.golang.org/grpc"
	"go.temporal.io/server/api/matchingservice/v1"
	"go.temporal.io/server/common"
)
var _ matchingservice.MatchingServiceClient = (*clientImpl)(nil)
const (
	DefaultTimeout = time.Minute
	DefaultLongPollTimeout = time.Minute * 2
)
type clientImpl struct {
	timeout         time.Duration
	longPollTimeout time.Duration
	clients         common.ClientCache
	loadBalancer    LoadBalancer
}