// Copyright 2025 Sonic Operations Ltd
// This file is part of the Sonic Client
//
// Sonic is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Sonic is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with Sonic. If not, see <http://www.gnu.org/licenses/>.

// Code generated by MockGen. DO NOT EDIT.
// Source: heavy_check.go
//
// Generated by this command:
//
//	mockgen -source=heavy_check.go -destination=heavy_check_mock.go -package=heavycheck
//

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

import (
	reflect "reflect"

	validatorpk "github.com/0xsoniclabs/sonic/inter/validatorpk"
	idx "github.com/Fantom-foundation/lachesis-base/inter/idx"
	gomock "go.uber.org/mock/gomock"
)

// MockReader is a mock of Reader interface.
type MockReader struct {
	ctrl     *gomock.Controller
	recorder *MockReaderMockRecorder
	isgomock struct{}
}

// MockReaderMockRecorder is the mock recorder for MockReader.
type MockReaderMockRecorder struct {
	mock *MockReader
}

// NewMockReader creates a new mock instance.
func NewMockReader(ctrl *gomock.Controller) *MockReader {
	mock := &MockReader{ctrl: ctrl}
	mock.recorder = &MockReaderMockRecorder{mock}
	return mock
}

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

// GetEpochBlockStart mocks base method.
func (m *MockReader) GetEpochBlockStart(arg0 idx.Epoch) idx.Block {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEpochBlockStart", arg0)
	ret0, _ := ret[0].(idx.Block)
	return ret0
}

// GetEpochBlockStart indicates an expected call of GetEpochBlockStart.
func (mr *MockReaderMockRecorder) GetEpochBlockStart(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEpochBlockStart", reflect.TypeOf((*MockReader)(nil).GetEpochBlockStart), arg0)
}

// GetEpochPubKeys mocks base method.
func (m *MockReader) GetEpochPubKeys() (map[idx.ValidatorID]validatorpk.PubKey, idx.Epoch) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEpochPubKeys")
	ret0, _ := ret[0].(map[idx.ValidatorID]validatorpk.PubKey)
	ret1, _ := ret[1].(idx.Epoch)
	return ret0, ret1
}

// GetEpochPubKeys indicates an expected call of GetEpochPubKeys.
func (mr *MockReaderMockRecorder) GetEpochPubKeys() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEpochPubKeys", reflect.TypeOf((*MockReader)(nil).GetEpochPubKeys))
}

// GetEpochPubKeysOf mocks base method.
func (m *MockReader) GetEpochPubKeysOf(arg0 idx.Epoch) map[idx.ValidatorID]validatorpk.PubKey {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEpochPubKeysOf", arg0)
	ret0, _ := ret[0].(map[idx.ValidatorID]validatorpk.PubKey)
	return ret0
}

// GetEpochPubKeysOf indicates an expected call of GetEpochPubKeysOf.
func (mr *MockReaderMockRecorder) GetEpochPubKeysOf(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEpochPubKeysOf", reflect.TypeOf((*MockReader)(nil).GetEpochPubKeysOf), arg0)
}
