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

// 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"
)

// MockDataColumnStorage is a mock of DataColumnStorage interface.
type MockDataColumnStorage struct {
	ctrl     *gomock.Controller
	recorder *MockDataColumnStorageMockRecorder
	isgomock struct{}
}

// MockDataColumnStorageMockRecorder is the mock recorder for MockDataColumnStorage.
type MockDataColumnStorageMockRecorder struct {
	mock *MockDataColumnStorage
}

// NewMockDataColumnStorage creates a new mock instance.
func NewMockDataColumnStorage(ctrl *gomock.Controller) *MockDataColumnStorage {
	mock := &MockDataColumnStorage{ctrl: ctrl}
	mock.recorder = &MockDataColumnStorageMockRecorder{mock}
	return mock
}

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

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

// ColumnSidecarExists indicates an expected call of ColumnSidecarExists.
func (mr *MockDataColumnStorageMockRecorder) ColumnSidecarExists(ctx, slot, blockRoot, columnIndex any) *MockDataColumnStorageColumnSidecarExistsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ColumnSidecarExists", reflect.TypeOf((*MockDataColumnStorage)(nil).ColumnSidecarExists), ctx, slot, blockRoot, columnIndex)
	return &MockDataColumnStorageColumnSidecarExistsCall{Call: call}
}

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

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

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

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

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

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

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

// Return rewrite *gomock.Call.Return
func (c *MockDataColumnStorageGetSavedColumnIndexCall) Return(arg0 []uint64, arg1 error) *MockDataColumnStorageGetSavedColumnIndexCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

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

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

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

// Prune indicates an expected call of Prune.
func (mr *MockDataColumnStorageMockRecorder) Prune(keepSlotDistance any) *MockDataColumnStoragePruneCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Prune", reflect.TypeOf((*MockDataColumnStorage)(nil).Prune), keepSlotDistance)
	return &MockDataColumnStoragePruneCall{Call: call}
}

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

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

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

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

// ReadColumnSidecarByColumnIndex mocks base method.
func (m *MockDataColumnStorage) ReadColumnSidecarByColumnIndex(ctx context.Context, slot uint64, blockRoot common.Hash, columnIndex int64) (*cltypes.DataColumnSidecar, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReadColumnSidecarByColumnIndex", ctx, slot, blockRoot, columnIndex)
	ret0, _ := ret[0].(*cltypes.DataColumnSidecar)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ReadColumnSidecarByColumnIndex indicates an expected call of ReadColumnSidecarByColumnIndex.
func (mr *MockDataColumnStorageMockRecorder) ReadColumnSidecarByColumnIndex(ctx, slot, blockRoot, columnIndex any) *MockDataColumnStorageReadColumnSidecarByColumnIndexCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadColumnSidecarByColumnIndex", reflect.TypeOf((*MockDataColumnStorage)(nil).ReadColumnSidecarByColumnIndex), ctx, slot, blockRoot, columnIndex)
	return &MockDataColumnStorageReadColumnSidecarByColumnIndexCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockDataColumnStorageReadColumnSidecarByColumnIndexCall) Return(arg0 *cltypes.DataColumnSidecar, arg1 error) *MockDataColumnStorageReadColumnSidecarByColumnIndexCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

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

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

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

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

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

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

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

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

// RemoveColumnSidecars mocks base method.
func (m *MockDataColumnStorage) RemoveColumnSidecars(ctx context.Context, slot uint64, blockRoot common.Hash, columnIndices ...int64) error {
	m.ctrl.T.Helper()
	varargs := []any{ctx, slot, blockRoot}
	for _, a := range columnIndices {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "RemoveColumnSidecars", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveColumnSidecars indicates an expected call of RemoveColumnSidecars.
func (mr *MockDataColumnStorageMockRecorder) RemoveColumnSidecars(ctx, slot, blockRoot any, columnIndices ...any) *MockDataColumnStorageRemoveColumnSidecarsCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, slot, blockRoot}, columnIndices...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveColumnSidecars", reflect.TypeOf((*MockDataColumnStorage)(nil).RemoveColumnSidecars), varargs...)
	return &MockDataColumnStorageRemoveColumnSidecarsCall{Call: call}
}

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

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

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

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

// WriteColumnSidecars mocks base method.
func (m *MockDataColumnStorage) WriteColumnSidecars(ctx context.Context, blockRoot common.Hash, columnIndex int64, columnData *cltypes.DataColumnSidecar) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "WriteColumnSidecars", ctx, blockRoot, columnIndex, columnData)
	ret0, _ := ret[0].(error)
	return ret0
}

// WriteColumnSidecars indicates an expected call of WriteColumnSidecars.
func (mr *MockDataColumnStorageMockRecorder) WriteColumnSidecars(ctx, blockRoot, columnIndex, columnData any) *MockDataColumnStorageWriteColumnSidecarsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteColumnSidecars", reflect.TypeOf((*MockDataColumnStorage)(nil).WriteColumnSidecars), ctx, blockRoot, columnIndex, columnData)
	return &MockDataColumnStorageWriteColumnSidecarsCall{Call: call}
}

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

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

// Do rewrite *gomock.Call.Do
func (c *MockDataColumnStorageWriteColumnSidecarsCall) Do(f func(context.Context, common.Hash, int64, *cltypes.DataColumnSidecar) error) *MockDataColumnStorageWriteColumnSidecarsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockDataColumnStorageWriteColumnSidecarsCall) DoAndReturn(f func(context.Context, common.Hash, int64, *cltypes.DataColumnSidecar) error) *MockDataColumnStorageWriteColumnSidecarsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// WriteStream mocks base method.
func (m *MockDataColumnStorage) 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 *MockDataColumnStorageMockRecorder) WriteStream(w, slot, blockRoot, idx any) *MockDataColumnStorageWriteStreamCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteStream", reflect.TypeOf((*MockDataColumnStorage)(nil).WriteStream), w, slot, blockRoot, idx)
	return &MockDataColumnStorageWriteStreamCall{Call: call}
}

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

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

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

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