// Code generated by mockery v2.53.5. DO NOT EDIT.

package mocks

import (
	common "github.com/berachain/beacon-kit/primitives/common"
	crypto "github.com/berachain/beacon-kit/primitives/crypto"

	mock "github.com/stretchr/testify/mock"

	types "github.com/berachain/beacon-kit/consensus-types/types"
)

// NewPayloadRequest is an autogenerated mock type for the NewPayloadRequest type
type NewPayloadRequest struct {
	mock.Mock
}

type NewPayloadRequest_Expecter struct {
	mock *mock.Mock
}

func (_m *NewPayloadRequest) EXPECT() *NewPayloadRequest_Expecter {
	return &NewPayloadRequest_Expecter{mock: &_m.Mock}
}

// GetEncodedExecutionRequests provides a mock function with no fields
func (_m *NewPayloadRequest) GetEncodedExecutionRequests() ([]types.EncodedExecutionRequest, error) {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetEncodedExecutionRequests")
	}

	var r0 []types.EncodedExecutionRequest
	var r1 error
	if rf, ok := ret.Get(0).(func() ([]types.EncodedExecutionRequest, error)); ok {
		return rf()
	}
	if rf, ok := ret.Get(0).(func() []types.EncodedExecutionRequest); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]types.EncodedExecutionRequest)
		}
	}

	if rf, ok := ret.Get(1).(func() error); ok {
		r1 = rf()
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// NewPayloadRequest_GetEncodedExecutionRequests_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetEncodedExecutionRequests'
type NewPayloadRequest_GetEncodedExecutionRequests_Call struct {
	*mock.Call
}

// GetEncodedExecutionRequests is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetEncodedExecutionRequests() *NewPayloadRequest_GetEncodedExecutionRequests_Call {
	return &NewPayloadRequest_GetEncodedExecutionRequests_Call{Call: _e.mock.On("GetEncodedExecutionRequests")}
}

func (_c *NewPayloadRequest_GetEncodedExecutionRequests_Call) Run(run func()) *NewPayloadRequest_GetEncodedExecutionRequests_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetEncodedExecutionRequests_Call) Return(_a0 []types.EncodedExecutionRequest, _a1 error) *NewPayloadRequest_GetEncodedExecutionRequests_Call {
	_c.Call.Return(_a0, _a1)
	return _c
}

func (_c *NewPayloadRequest_GetEncodedExecutionRequests_Call) RunAndReturn(run func() ([]types.EncodedExecutionRequest, error)) *NewPayloadRequest_GetEncodedExecutionRequests_Call {
	_c.Call.Return(run)
	return _c
}

// GetExecutionPayload provides a mock function with no fields
func (_m *NewPayloadRequest) GetExecutionPayload() *types.ExecutionPayload {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetExecutionPayload")
	}

	var r0 *types.ExecutionPayload
	if rf, ok := ret.Get(0).(func() *types.ExecutionPayload); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*types.ExecutionPayload)
		}
	}

	return r0
}

// NewPayloadRequest_GetExecutionPayload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetExecutionPayload'
type NewPayloadRequest_GetExecutionPayload_Call struct {
	*mock.Call
}

// GetExecutionPayload is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetExecutionPayload() *NewPayloadRequest_GetExecutionPayload_Call {
	return &NewPayloadRequest_GetExecutionPayload_Call{Call: _e.mock.On("GetExecutionPayload")}
}

func (_c *NewPayloadRequest_GetExecutionPayload_Call) Run(run func()) *NewPayloadRequest_GetExecutionPayload_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetExecutionPayload_Call) Return(_a0 *types.ExecutionPayload) *NewPayloadRequest_GetExecutionPayload_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_GetExecutionPayload_Call) RunAndReturn(run func() *types.ExecutionPayload) *NewPayloadRequest_GetExecutionPayload_Call {
	_c.Call.Return(run)
	return _c
}

// GetForkVersion provides a mock function with no fields
func (_m *NewPayloadRequest) GetForkVersion() common.Version {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetForkVersion")
	}

	var r0 common.Version
	if rf, ok := ret.Get(0).(func() common.Version); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(common.Version)
		}
	}

	return r0
}

// NewPayloadRequest_GetForkVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetForkVersion'
type NewPayloadRequest_GetForkVersion_Call struct {
	*mock.Call
}

// GetForkVersion is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetForkVersion() *NewPayloadRequest_GetForkVersion_Call {
	return &NewPayloadRequest_GetForkVersion_Call{Call: _e.mock.On("GetForkVersion")}
}

func (_c *NewPayloadRequest_GetForkVersion_Call) Run(run func()) *NewPayloadRequest_GetForkVersion_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetForkVersion_Call) Return(_a0 common.Version) *NewPayloadRequest_GetForkVersion_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_GetForkVersion_Call) RunAndReturn(run func() common.Version) *NewPayloadRequest_GetForkVersion_Call {
	_c.Call.Return(run)
	return _c
}

// GetParentBeaconBlockRoot provides a mock function with no fields
func (_m *NewPayloadRequest) GetParentBeaconBlockRoot() common.Root {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetParentBeaconBlockRoot")
	}

	var r0 common.Root
	if rf, ok := ret.Get(0).(func() common.Root); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(common.Root)
		}
	}

	return r0
}

// NewPayloadRequest_GetParentBeaconBlockRoot_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetParentBeaconBlockRoot'
type NewPayloadRequest_GetParentBeaconBlockRoot_Call struct {
	*mock.Call
}

// GetParentBeaconBlockRoot is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetParentBeaconBlockRoot() *NewPayloadRequest_GetParentBeaconBlockRoot_Call {
	return &NewPayloadRequest_GetParentBeaconBlockRoot_Call{Call: _e.mock.On("GetParentBeaconBlockRoot")}
}

func (_c *NewPayloadRequest_GetParentBeaconBlockRoot_Call) Run(run func()) *NewPayloadRequest_GetParentBeaconBlockRoot_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetParentBeaconBlockRoot_Call) Return(_a0 common.Root) *NewPayloadRequest_GetParentBeaconBlockRoot_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_GetParentBeaconBlockRoot_Call) RunAndReturn(run func() common.Root) *NewPayloadRequest_GetParentBeaconBlockRoot_Call {
	_c.Call.Return(run)
	return _c
}

// GetParentProposerPubkey provides a mock function with no fields
func (_m *NewPayloadRequest) GetParentProposerPubkey() *crypto.BLSPubkey {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetParentProposerPubkey")
	}

	var r0 *crypto.BLSPubkey
	if rf, ok := ret.Get(0).(func() *crypto.BLSPubkey); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*crypto.BLSPubkey)
		}
	}

	return r0
}

// NewPayloadRequest_GetParentProposerPubkey_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetParentProposerPubkey'
type NewPayloadRequest_GetParentProposerPubkey_Call struct {
	*mock.Call
}

// GetParentProposerPubkey is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetParentProposerPubkey() *NewPayloadRequest_GetParentProposerPubkey_Call {
	return &NewPayloadRequest_GetParentProposerPubkey_Call{Call: _e.mock.On("GetParentProposerPubkey")}
}

func (_c *NewPayloadRequest_GetParentProposerPubkey_Call) Run(run func()) *NewPayloadRequest_GetParentProposerPubkey_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetParentProposerPubkey_Call) Return(_a0 *crypto.BLSPubkey) *NewPayloadRequest_GetParentProposerPubkey_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_GetParentProposerPubkey_Call) RunAndReturn(run func() *crypto.BLSPubkey) *NewPayloadRequest_GetParentProposerPubkey_Call {
	_c.Call.Return(run)
	return _c
}

// GetVersionedHashes provides a mock function with no fields
func (_m *NewPayloadRequest) GetVersionedHashes() []common.ExecutionHash {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetVersionedHashes")
	}

	var r0 []common.ExecutionHash
	if rf, ok := ret.Get(0).(func() []common.ExecutionHash); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]common.ExecutionHash)
		}
	}

	return r0
}

// NewPayloadRequest_GetVersionedHashes_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetVersionedHashes'
type NewPayloadRequest_GetVersionedHashes_Call struct {
	*mock.Call
}

// GetVersionedHashes is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) GetVersionedHashes() *NewPayloadRequest_GetVersionedHashes_Call {
	return &NewPayloadRequest_GetVersionedHashes_Call{Call: _e.mock.On("GetVersionedHashes")}
}

func (_c *NewPayloadRequest_GetVersionedHashes_Call) Run(run func()) *NewPayloadRequest_GetVersionedHashes_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_GetVersionedHashes_Call) Return(_a0 []common.ExecutionHash) *NewPayloadRequest_GetVersionedHashes_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_GetVersionedHashes_Call) RunAndReturn(run func() []common.ExecutionHash) *NewPayloadRequest_GetVersionedHashes_Call {
	_c.Call.Return(run)
	return _c
}

// HasValidVersionedAndBlockHashes provides a mock function with no fields
func (_m *NewPayloadRequest) HasValidVersionedAndBlockHashes() error {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for HasValidVersionedAndBlockHashes")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func() error); ok {
		r0 = rf()
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// NewPayloadRequest_HasValidVersionedAndBlockHashes_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HasValidVersionedAndBlockHashes'
type NewPayloadRequest_HasValidVersionedAndBlockHashes_Call struct {
	*mock.Call
}

// HasValidVersionedAndBlockHashes is a helper method to define mock.On call
func (_e *NewPayloadRequest_Expecter) HasValidVersionedAndBlockHashes() *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call {
	return &NewPayloadRequest_HasValidVersionedAndBlockHashes_Call{Call: _e.mock.On("HasValidVersionedAndBlockHashes")}
}

func (_c *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call) Run(run func()) *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call) Return(_a0 error) *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call {
	_c.Call.Return(_a0)
	return _c
}

func (_c *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call) RunAndReturn(run func() error) *NewPayloadRequest_HasValidVersionedAndBlockHashes_Call {
	_c.Call.Return(run)
	return _c
}

// NewNewPayloadRequest creates a new instance of NewPayloadRequest. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewNewPayloadRequest(t interface {
	mock.TestingT
	Cleanup(func())
}) *NewPayloadRequest {
	mock := &NewPayloadRequest{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
