// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/erigontech/erigon/cl/persistence/blob_storage (interfaces: BlobStorage)
//
// Generated by this command:
//
//	mockgen -typed=true -destination=./mock_services/blob_storage_mock.go -package=mock_services . BlobStorage
//

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

import (
	context "context"
	io "io"
	reflect "reflect"

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

// MockBlobStorage is a mock of BlobStorage interface.
type MockBlobStorage struct {
	ctrl     *gomock.Controller
	recorder *MockBlobStorageMockRecorder
	isgomock struct{}
}

// MockBlobStorageMockRecorder is the mock recorder for MockBlobStorage.
type MockBlobStorageMockRecorder struct {
	mock *MockBlobStorage
}

// NewMockBlobStorage creates a new mock instance.
func NewMockBlobStorage(ctrl *gomock.Controller) *MockBlobStorage {
	mock := &MockBlobStorage{ctrl: ctrl}
	mock.recorder = &MockBlobStorageMockRecorder{mock}
	return mock
}

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

// BlobSidecarExists mocks base method.
func (m *MockBlobStorage) BlobSidecarExists(ctx context.Context, slot uint64, blockRoot common.Hash, idx uint64) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "BlobSidecarExists", ctx, slot, blockRoot, idx)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// BlobSidecarExists indicates an expected call of BlobSidecarExists.
func (mr *MockBlobStorageMockRecorder) BlobSidecarExists(ctx, slot, blockRoot, idx any) *MockBlobStorageBlobSidecarExistsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BlobSidecarExists", reflect.TypeOf((*MockBlobStorage)(nil).BlobSidecarExists), ctx, slot, blockRoot, idx)
	return &MockBlobStorageBlobSidecarExistsCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockBlobStorageBlobSidecarExistsCall) Return(arg0 bool, arg1 error) *MockBlobStorageBlobSidecarExistsCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageBlobSidecarExistsCall) Do(f func(context.Context, uint64, common.Hash, uint64) (bool, error)) *MockBlobStorageBlobSidecarExistsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageBlobSidecarExistsCall) DoAndReturn(f func(context.Context, uint64, common.Hash, uint64) (bool, error)) *MockBlobStorageBlobSidecarExistsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// KzgCommitmentsCount mocks base method.
func (m *MockBlobStorage) KzgCommitmentsCount(ctx context.Context, blockRoot common.Hash) (uint32, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "KzgCommitmentsCount", ctx, blockRoot)
	ret0, _ := ret[0].(uint32)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// KzgCommitmentsCount indicates an expected call of KzgCommitmentsCount.
func (mr *MockBlobStorageMockRecorder) KzgCommitmentsCount(ctx, blockRoot any) *MockBlobStorageKzgCommitmentsCountCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "KzgCommitmentsCount", reflect.TypeOf((*MockBlobStorage)(nil).KzgCommitmentsCount), ctx, blockRoot)
	return &MockBlobStorageKzgCommitmentsCountCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockBlobStorageKzgCommitmentsCountCall) Return(arg0 uint32, arg1 error) *MockBlobStorageKzgCommitmentsCountCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageKzgCommitmentsCountCall) Do(f func(context.Context, common.Hash) (uint32, error)) *MockBlobStorageKzgCommitmentsCountCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageKzgCommitmentsCountCall) DoAndReturn(f func(context.Context, common.Hash) (uint32, error)) *MockBlobStorageKzgCommitmentsCountCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

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

// Prune indicates an expected call of Prune.
func (mr *MockBlobStorageMockRecorder) Prune() *MockBlobStoragePruneCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Prune", reflect.TypeOf((*MockBlobStorage)(nil).Prune))
	return &MockBlobStoragePruneCall{Call: call}
}

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

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

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

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

// ReadBlobSidecars mocks base method.
func (m *MockBlobStorage) ReadBlobSidecars(ctx context.Context, slot uint64, blockRoot common.Hash) ([]*cltypes.BlobSidecar, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReadBlobSidecars", ctx, slot, blockRoot)
	ret0, _ := ret[0].([]*cltypes.BlobSidecar)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// ReadBlobSidecars indicates an expected call of ReadBlobSidecars.
func (mr *MockBlobStorageMockRecorder) ReadBlobSidecars(ctx, slot, blockRoot any) *MockBlobStorageReadBlobSidecarsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadBlobSidecars", reflect.TypeOf((*MockBlobStorage)(nil).ReadBlobSidecars), ctx, slot, blockRoot)
	return &MockBlobStorageReadBlobSidecarsCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockBlobStorageReadBlobSidecarsCall) Return(out []*cltypes.BlobSidecar, found bool, err error) *MockBlobStorageReadBlobSidecarsCall {
	c.Call = c.Call.Return(out, found, err)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageReadBlobSidecarsCall) Do(f func(context.Context, uint64, common.Hash) ([]*cltypes.BlobSidecar, bool, error)) *MockBlobStorageReadBlobSidecarsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageReadBlobSidecarsCall) DoAndReturn(f func(context.Context, uint64, common.Hash) ([]*cltypes.BlobSidecar, bool, error)) *MockBlobStorageReadBlobSidecarsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// RemoveBlobSidecars mocks base method.
func (m *MockBlobStorage) RemoveBlobSidecars(ctx context.Context, slot uint64, blockRoot common.Hash) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RemoveBlobSidecars", ctx, slot, blockRoot)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveBlobSidecars indicates an expected call of RemoveBlobSidecars.
func (mr *MockBlobStorageMockRecorder) RemoveBlobSidecars(ctx, slot, blockRoot any) *MockBlobStorageRemoveBlobSidecarsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveBlobSidecars", reflect.TypeOf((*MockBlobStorage)(nil).RemoveBlobSidecars), ctx, slot, blockRoot)
	return &MockBlobStorageRemoveBlobSidecarsCall{Call: call}
}

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

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

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageRemoveBlobSidecarsCall) Do(f func(context.Context, uint64, common.Hash) error) *MockBlobStorageRemoveBlobSidecarsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageRemoveBlobSidecarsCall) DoAndReturn(f func(context.Context, uint64, common.Hash) error) *MockBlobStorageRemoveBlobSidecarsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// WriteBlobSidecars mocks base method.
func (m *MockBlobStorage) WriteBlobSidecars(ctx context.Context, blockRoot common.Hash, blobSidecars []*cltypes.BlobSidecar) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "WriteBlobSidecars", ctx, blockRoot, blobSidecars)
	ret0, _ := ret[0].(error)
	return ret0
}

// WriteBlobSidecars indicates an expected call of WriteBlobSidecars.
func (mr *MockBlobStorageMockRecorder) WriteBlobSidecars(ctx, blockRoot, blobSidecars any) *MockBlobStorageWriteBlobSidecarsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteBlobSidecars", reflect.TypeOf((*MockBlobStorage)(nil).WriteBlobSidecars), ctx, blockRoot, blobSidecars)
	return &MockBlobStorageWriteBlobSidecarsCall{Call: call}
}

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

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

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageWriteBlobSidecarsCall) Do(f func(context.Context, common.Hash, []*cltypes.BlobSidecar) error) *MockBlobStorageWriteBlobSidecarsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageWriteBlobSidecarsCall) DoAndReturn(f func(context.Context, common.Hash, []*cltypes.BlobSidecar) error) *MockBlobStorageWriteBlobSidecarsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// WriteStream mocks base method.
func (m *MockBlobStorage) WriteStream(w io.Writer, slot uint64, blockRoot common.Hash, idx uint64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "WriteStream", w, slot, blockRoot, idx)
	ret0, _ := ret[0].(error)
	return ret0
}

// WriteStream indicates an expected call of WriteStream.
func (mr *MockBlobStorageMockRecorder) WriteStream(w, slot, blockRoot, idx any) *MockBlobStorageWriteStreamCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteStream", reflect.TypeOf((*MockBlobStorage)(nil).WriteStream), w, slot, blockRoot, idx)
	return &MockBlobStorageWriteStreamCall{Call: call}
}

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

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

// Do rewrite *gomock.Call.Do
func (c *MockBlobStorageWriteStreamCall) Do(f func(io.Writer, uint64, common.Hash, uint64) error) *MockBlobStorageWriteStreamCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockBlobStorageWriteStreamCall) DoAndReturn(f func(io.Writer, uint64, common.Hash, uint64) error) *MockBlobStorageWriteStreamCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
