// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/infra/clients/billingcli (interfaces: Client)
//
// Generated by this command:
//
//	mockgen -destination client_mock.go -package=billingcli github.com/tidbcloud/devops/pkg/infra/clients/billingcli Client
//

// Package billingcli is a generated GoMock package.
package billingcli

import (
	context "context"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// MockClient is a mock of Client interface.
type MockClient struct {
	ctrl     *gomock.Controller
	recorder *MockClientMockRecorder
	isgomock struct{}
}

// MockClientMockRecorder is the mock recorder for MockClient.
type MockClientMockRecorder struct {
	mock *MockClient
}

// NewMockClient creates a new mock instance.
func NewMockClient(ctrl *gomock.Controller) *MockClient {
	mock := &MockClient{ctrl: ctrl}
	mock.recorder = &MockClientMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockClient) EXPECT() *MockClientMockRecorder {
	return m.recorder
}

// CreateCredits mocks base method.
func (m *MockClient) CreateCredits(ctx context.Context, tenantId uint64, req *CreateCreditsPackageReq) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateCredits", ctx, tenantId, req)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateCredits indicates an expected call of CreateCredits.
func (mr *MockClientMockRecorder) CreateCredits(ctx, tenantId, req any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredits", reflect.TypeOf((*MockClient)(nil).CreateCredits), ctx, tenantId, req)
}

// CreateCreditsWithBillingConfig mocks base method.
func (m *MockClient) CreateCreditsWithBillingConfig(ctx context.Context, tenantId, billingConfigID uint64, req *CreateCreditsWithBillingConfigReq, operatorEmail string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateCreditsWithBillingConfig", ctx, tenantId, billingConfigID, req, operatorEmail)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateCreditsWithBillingConfig indicates an expected call of CreateCreditsWithBillingConfig.
func (mr *MockClientMockRecorder) CreateCreditsWithBillingConfig(ctx, tenantId, billingConfigID, req, operatorEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCreditsWithBillingConfig", reflect.TypeOf((*MockClient)(nil).CreateCreditsWithBillingConfig), ctx, tenantId, billingConfigID, req, operatorEmail)
}

// GetTenantPlanInfo mocks base method.
func (m *MockClient) GetTenantPlanInfo(ctx context.Context, tenantId uint64) (*TenantPlanInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetTenantPlanInfo", ctx, tenantId)
	ret0, _ := ret[0].(*TenantPlanInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetTenantPlanInfo indicates an expected call of GetTenantPlanInfo.
func (mr *MockClientMockRecorder) GetTenantPlanInfo(ctx, tenantId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenantPlanInfo", reflect.TypeOf((*MockClient)(nil).GetTenantPlanInfo), ctx, tenantId)
}

// ListBillingConfigs mocks base method.
func (m *MockClient) ListBillingConfigs(ctx context.Context, tenantId uint64, operatorEmail string) ([]*BillingConfig, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListBillingConfigs", ctx, tenantId, operatorEmail)
	ret0, _ := ret[0].([]*BillingConfig)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListBillingConfigs indicates an expected call of ListBillingConfigs.
func (mr *MockClientMockRecorder) ListBillingConfigs(ctx, tenantId, operatorEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBillingConfigs", reflect.TypeOf((*MockClient)(nil).ListBillingConfigs), ctx, tenantId, operatorEmail)
}

// ListCredits mocks base method.
func (m *MockClient) ListCredits(ctx context.Context, tenantId, billingConfigID uint64, operatorEmail string) ([]*CreditsPackage, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListCredits", ctx, tenantId, billingConfigID, operatorEmail)
	ret0, _ := ret[0].([]*CreditsPackage)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListCredits indicates an expected call of ListCredits.
func (mr *MockClientMockRecorder) ListCredits(ctx, tenantId, billingConfigID, operatorEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredits", reflect.TypeOf((*MockClient)(nil).ListCredits), ctx, tenantId, billingConfigID, operatorEmail)
}

// ListStripePaymentMethods mocks base method.
func (m *MockClient) ListStripePaymentMethods(ctx context.Context, tenantId, billingConfigID uint64, operatorEmail string) ([]*StripePaymentMethod, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListStripePaymentMethods", ctx, tenantId, billingConfigID, operatorEmail)
	ret0, _ := ret[0].([]*StripePaymentMethod)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListStripePaymentMethods indicates an expected call of ListStripePaymentMethods.
func (mr *MockClientMockRecorder) ListStripePaymentMethods(ctx, tenantId, billingConfigID, operatorEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStripePaymentMethods", reflect.TypeOf((*MockClient)(nil).ListStripePaymentMethods), ctx, tenantId, billingConfigID, operatorEmail)
}

// RecalculateBills mocks base method.
func (m *MockClient) RecalculateBills(ctx context.Context, tenantId, billingConfigID uint64, req *RecalculateBillsReq, operatorEmail string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RecalculateBills", ctx, tenantId, billingConfigID, req, operatorEmail)
	ret0, _ := ret[0].(error)
	return ret0
}

// RecalculateBills indicates an expected call of RecalculateBills.
func (mr *MockClientMockRecorder) RecalculateBills(ctx, tenantId, billingConfigID, req, operatorEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecalculateBills", reflect.TypeOf((*MockClient)(nil).RecalculateBills), ctx, tenantId, billingConfigID, req, operatorEmail)
}
