// Code generated by MockGen. DO NOT EDIT.
// Source: x/emissions/module/stake_removals.go

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

import (
	"context"
	"reflect"

	"cosmossdk.io/math"
	types0 "github.com/cosmos/cosmos-sdk/types"
	"github.com/golang/mock/gomock"

	"github.com/allora-network/allora-chain/x/emissions/keeper"
	"github.com/allora-network/allora-chain/x/emissions/types"
)

// MockEmissionsKeeper is a mock of EmissionsKeeper interface.
type MockEmissionsKeeper struct {
	ctrl     *gomock.Controller
	recorder *MockEmissionsKeeperMockRecorder
}

// MockEmissionsKeeperMockRecorder is the mock recorder for MockEmissionsKeeper.
type MockEmissionsKeeperMockRecorder struct {
	mock *MockEmissionsKeeper
}

// NewMockEmissionsKeeper creates a new mock instance.
func NewMockEmissionsKeeper(ctrl *gomock.Controller) *MockEmissionsKeeper {
	mock := &MockEmissionsKeeper{ctrl: ctrl}
	mock.recorder = &MockEmissionsKeeperMockRecorder{mock}
	return mock
}

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

// GetDelegateStakeRemovalsUpUntilBlock mocks base method.
func (m *MockEmissionsKeeper) GetDelegateStakeRemovalsUpUntilBlock(ctx context.Context, blockHeight keeper.BlockHeight, limit uint64) ([]types.DelegateStakeRemovalInfo, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetDelegateStakeRemovalsUpUntilBlock", ctx, blockHeight, limit)
	ret0, _ := ret[0].([]types.DelegateStakeRemovalInfo)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// GetDelegateStakeRemovalsUpUntilBlock indicates an expected call of GetDelegateStakeRemovalsUpUntilBlock.
func (mr *MockEmissionsKeeperMockRecorder) GetDelegateStakeRemovalsUpUntilBlock(ctx, blockHeight, limit interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDelegateStakeRemovalsUpUntilBlock", reflect.TypeOf((*MockEmissionsKeeper)(nil).GetDelegateStakeRemovalsUpUntilBlock), ctx, blockHeight, limit)
}

// GetStakeRemovalsUpUntilBlock mocks base method.
func (m *MockEmissionsKeeper) GetStakeRemovalsUpUntilBlock(ctx context.Context, blockHeight keeper.BlockHeight, limit uint64) ([]types.StakeRemovalInfo, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetStakeRemovalsUpUntilBlock", ctx, blockHeight, limit)
	ret0, _ := ret[0].([]types.StakeRemovalInfo)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// GetStakeRemovalsUpUntilBlock indicates an expected call of GetStakeRemovalsUpUntilBlock.
func (mr *MockEmissionsKeeperMockRecorder) GetStakeRemovalsUpUntilBlock(ctx, blockHeight, limit interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStakeRemovalsUpUntilBlock", reflect.TypeOf((*MockEmissionsKeeper)(nil).GetStakeRemovalsUpUntilBlock), ctx, blockHeight, limit)
}

// RemoveDelegateStake mocks base method.
func (m *MockEmissionsKeeper) RemoveDelegateStake(ctx context.Context, stakeRemovalBlockHeight keeper.BlockHeight, topicId keeper.TopicId, delegator, reputer keeper.ActorId, stakeToRemove math.Int) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RemoveDelegateStake", ctx, stakeRemovalBlockHeight, topicId, delegator, reputer, stakeToRemove)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveDelegateStake indicates an expected call of RemoveDelegateStake.
func (mr *MockEmissionsKeeperMockRecorder) RemoveDelegateStake(ctx, stakeRemovalBlockHeight, topicId, delegator, reputer, stakeToRemove interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveDelegateStake", reflect.TypeOf((*MockEmissionsKeeper)(nil).RemoveDelegateStake), ctx, stakeRemovalBlockHeight, topicId, delegator, reputer, stakeToRemove)
}

// RemoveReputerStake mocks base method.
func (m *MockEmissionsKeeper) RemoveReputerStake(ctx context.Context, blockHeight keeper.BlockHeight, topicId keeper.TopicId, reputer keeper.ActorId, stakeToRemove math.Int) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RemoveReputerStake", ctx, blockHeight, topicId, reputer, stakeToRemove)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveReputerStake indicates an expected call of RemoveReputerStake.
func (mr *MockEmissionsKeeperMockRecorder) RemoveReputerStake(ctx, blockHeight, topicId, reputer, stakeToRemove interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveReputerStake", reflect.TypeOf((*MockEmissionsKeeper)(nil).RemoveReputerStake), ctx, blockHeight, topicId, reputer, stakeToRemove)
}

// SendCoinsFromModuleToAccount mocks base method.
func (m *MockEmissionsKeeper) SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr keeper.ActorId, amt types0.Coins) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SendCoinsFromModuleToAccount", ctx, senderModule, recipientAddr, amt)
	ret0, _ := ret[0].(error)
	return ret0
}

// SendCoinsFromModuleToAccount indicates an expected call of SendCoinsFromModuleToAccount.
func (mr *MockEmissionsKeeperMockRecorder) SendCoinsFromModuleToAccount(ctx, senderModule, recipientAddr, amt interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendCoinsFromModuleToAccount", reflect.TypeOf((*MockEmissionsKeeper)(nil).SendCoinsFromModuleToAccount), ctx, senderModule, recipientAddr, amt)
}
