// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/erigontech/erigon/cl/validator/committee_subscription (interfaces: CommitteeSubscribe)
//
// Generated by this command:
//
//	mockgen -typed=true -destination=./mock_services/committee_subscribe_mock.go -package=mock_services . CommitteeSubscribe
//

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

import (
	context "context"
	reflect "reflect"

	cltypes "github.com/erigontech/erigon/cl/cltypes"
	solid "github.com/erigontech/erigon/cl/cltypes/solid"
	gomock "go.uber.org/mock/gomock"
)

// MockCommitteeSubscribe is a mock of CommitteeSubscribe interface.
type MockCommitteeSubscribe struct {
	ctrl     *gomock.Controller
	recorder *MockCommitteeSubscribeMockRecorder
	isgomock struct{}
}

// MockCommitteeSubscribeMockRecorder is the mock recorder for MockCommitteeSubscribe.
type MockCommitteeSubscribeMockRecorder struct {
	mock *MockCommitteeSubscribe
}

// NewMockCommitteeSubscribe creates a new mock instance.
func NewMockCommitteeSubscribe(ctrl *gomock.Controller) *MockCommitteeSubscribe {
	mock := &MockCommitteeSubscribe{ctrl: ctrl}
	mock.recorder = &MockCommitteeSubscribeMockRecorder{mock}
	return mock
}

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

// AddAttestationSubscription mocks base method.
func (m *MockCommitteeSubscribe) AddAttestationSubscription(ctx context.Context, p *cltypes.BeaconCommitteeSubscription) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddAttestationSubscription", ctx, p)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddAttestationSubscription indicates an expected call of AddAttestationSubscription.
func (mr *MockCommitteeSubscribeMockRecorder) AddAttestationSubscription(ctx, p any) *MockCommitteeSubscribeAddAttestationSubscriptionCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddAttestationSubscription", reflect.TypeOf((*MockCommitteeSubscribe)(nil).AddAttestationSubscription), ctx, p)
	return &MockCommitteeSubscribeAddAttestationSubscriptionCall{Call: call}
}

// MockCommitteeSubscribeAddAttestationSubscriptionCall wrap *gomock.Call
type MockCommitteeSubscribeAddAttestationSubscriptionCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockCommitteeSubscribeAddAttestationSubscriptionCall) Return(arg0 error) *MockCommitteeSubscribeAddAttestationSubscriptionCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockCommitteeSubscribeAddAttestationSubscriptionCall) Do(f func(context.Context, *cltypes.BeaconCommitteeSubscription) error) *MockCommitteeSubscribeAddAttestationSubscriptionCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCommitteeSubscribeAddAttestationSubscriptionCall) DoAndReturn(f func(context.Context, *cltypes.BeaconCommitteeSubscription) error) *MockCommitteeSubscribeAddAttestationSubscriptionCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// AggregateAttestation mocks base method.
func (m *MockCommitteeSubscribe) AggregateAttestation(att *solid.Attestation) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AggregateAttestation", att)
	ret0, _ := ret[0].(error)
	return ret0
}

// AggregateAttestation indicates an expected call of AggregateAttestation.
func (mr *MockCommitteeSubscribeMockRecorder) AggregateAttestation(att any) *MockCommitteeSubscribeAggregateAttestationCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AggregateAttestation", reflect.TypeOf((*MockCommitteeSubscribe)(nil).AggregateAttestation), att)
	return &MockCommitteeSubscribeAggregateAttestationCall{Call: call}
}

// MockCommitteeSubscribeAggregateAttestationCall wrap *gomock.Call
type MockCommitteeSubscribeAggregateAttestationCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockCommitteeSubscribeAggregateAttestationCall) Return(arg0 error) *MockCommitteeSubscribeAggregateAttestationCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockCommitteeSubscribeAggregateAttestationCall) Do(f func(*solid.Attestation) error) *MockCommitteeSubscribeAggregateAttestationCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCommitteeSubscribeAggregateAttestationCall) DoAndReturn(f func(*solid.Attestation) error) *MockCommitteeSubscribeAggregateAttestationCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// NeedToAggregate mocks base method.
func (m *MockCommitteeSubscribe) NeedToAggregate(att *solid.Attestation) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "NeedToAggregate", att)
	ret0, _ := ret[0].(bool)
	return ret0
}

// NeedToAggregate indicates an expected call of NeedToAggregate.
func (mr *MockCommitteeSubscribeMockRecorder) NeedToAggregate(att any) *MockCommitteeSubscribeNeedToAggregateCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NeedToAggregate", reflect.TypeOf((*MockCommitteeSubscribe)(nil).NeedToAggregate), att)
	return &MockCommitteeSubscribeNeedToAggregateCall{Call: call}
}

// MockCommitteeSubscribeNeedToAggregateCall wrap *gomock.Call
type MockCommitteeSubscribeNeedToAggregateCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockCommitteeSubscribeNeedToAggregateCall) Return(arg0 bool) *MockCommitteeSubscribeNeedToAggregateCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockCommitteeSubscribeNeedToAggregateCall) Do(f func(*solid.Attestation) bool) *MockCommitteeSubscribeNeedToAggregateCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockCommitteeSubscribeNeedToAggregateCall) DoAndReturn(f func(*solid.Attestation) bool) *MockCommitteeSubscribeNeedToAggregateCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
