// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.

// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/luxfi/consensus/core/router (interfaces: Router)
//
// Generated by this command:
//
//	mockgen -destination=node/mocks/router_mock.go -package=mocks github.com/luxfi/consensus/core/router Router
//

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

import (
	context "context"
	reflect "reflect"
	time "time"

	ids "github.com/luxfi/ids"
	version "github.com/luxfi/node/version"
	warp "github.com/luxfi/warp"
	gomock "go.uber.org/mock/gomock"
)

// MockRouter is a mock of Router interface.
type MockRouter struct {
	ctrl     *gomock.Controller
	recorder *MockRouterMockRecorder
	isgomock struct{}
}

// MockRouterMockRecorder is the mock recorder for MockRouter.
type MockRouterMockRecorder struct {
	mock *MockRouter
}

// NewMockRouter creates a new mock instance.
func NewMockRouter(ctrl *gomock.Controller) *MockRouter {
	mock := &MockRouter{ctrl: ctrl}
	mock.recorder = &MockRouterMockRecorder{mock}
	return mock
}

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

// AddChain mocks base method.
func (m *MockRouter) AddChain(chainID ids.ID, handler any) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "AddChain", chainID, handler)
}

// AddChain indicates an expected call of AddChain.
func (mr *MockRouterMockRecorder) AddChain(chainID, handler any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddChain", reflect.TypeOf((*MockRouter)(nil).AddChain), chainID, handler)
}

// Gossip mocks base method.
func (m *MockRouter) Gossip(ctx context.Context, nodeID ids.NodeID, msg []byte) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Gossip", ctx, nodeID, msg)
	ret0, _ := ret[0].(error)
	return ret0
}

// Gossip indicates an expected call of Gossip.
func (mr *MockRouterMockRecorder) Gossip(ctx, nodeID, msg any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Gossip", reflect.TypeOf((*MockRouter)(nil).Gossip), ctx, nodeID, msg)
}

// Request mocks base method.
func (m *MockRouter) Request(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, appRequestBytes []byte) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Request", ctx, nodeID, requestID, deadline, appRequestBytes)
	ret0, _ := ret[0].(error)
	return ret0
}

// Request indicates an expected call of Request.
func (mr *MockRouterMockRecorder) Request(ctx, nodeID, requestID, deadline, appRequestBytes any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Request", reflect.TypeOf((*MockRouter)(nil).Request), ctx, nodeID, requestID, deadline, appRequestBytes)
}

// RequestFailed mocks base method.
func (m *MockRouter) RequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32, appErr *warp.Error) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RequestFailed", ctx, nodeID, requestID, appErr)
	ret0, _ := ret[0].(error)
	return ret0
}

// RequestFailed indicates an expected call of RequestFailed.
func (mr *MockRouterMockRecorder) RequestFailed(ctx, nodeID, requestID, appErr any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RequestFailed", reflect.TypeOf((*MockRouter)(nil).RequestFailed), ctx, nodeID, requestID, appErr)
}

// Response mocks base method.
func (m *MockRouter) Response(ctx context.Context, nodeID ids.NodeID, requestID uint32, appResponseBytes []byte) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Response", ctx, nodeID, requestID, appResponseBytes)
	ret0, _ := ret[0].(error)
	return ret0
}

// Response indicates an expected call of Response.
func (mr *MockRouterMockRecorder) Response(ctx, nodeID, requestID, appResponseBytes any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Response", reflect.TypeOf((*MockRouter)(nil).Response), ctx, nodeID, requestID, appResponseBytes)
}

// Connected mocks base method.
func (m *MockRouter) Connected(nodeID ids.NodeID, nodeVersion *version.Application, netID ids.ID) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Connected", nodeID, nodeVersion, netID)
}

// Connected indicates an expected call of Connected.
func (mr *MockRouterMockRecorder) Connected(nodeID, nodeVersion, netID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Connected", reflect.TypeOf((*MockRouter)(nil).Connected), nodeID, nodeVersion, netID)
}

// Disconnected mocks base method.
func (m *MockRouter) Disconnected(nodeID ids.NodeID) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Disconnected", nodeID)
}

// Disconnected indicates an expected call of Disconnected.
func (mr *MockRouterMockRecorder) Disconnected(nodeID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Disconnected", reflect.TypeOf((*MockRouter)(nil).Disconnected), nodeID)
}

// HandleInbound mocks base method.
func (m *MockRouter) HandleInbound(arg0 context.Context, arg1 any) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "HandleInbound", arg0, arg1)
}

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

// HealthCheck mocks base method.
func (m *MockRouter) HealthCheck(ctx context.Context) (any, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HealthCheck", ctx)
	ret0, _ := ret[0].(any)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// HealthCheck indicates an expected call of HealthCheck.
func (mr *MockRouterMockRecorder) HealthCheck(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HealthCheck", reflect.TypeOf((*MockRouter)(nil).HealthCheck), ctx)
}

// Initialize mocks base method.
func (m *MockRouter) Initialize(nodeID ids.NodeID, log, timeoutManager any, closeTimeout time.Duration, criticalChains any, sybilProtectionEnabled bool, trackedNets any, onFatal func(int), healthConfig interface{}, metricsRegisterer any) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Initialize", nodeID, log, timeoutManager, closeTimeout, criticalChains, sybilProtectionEnabled, trackedNets, onFatal, healthConfig, metricsRegisterer)
	ret0, _ := ret[0].(error)
	return ret0
}

// Initialize indicates an expected call of Initialize.
func (mr *MockRouterMockRecorder) Initialize(nodeID, log, timeoutManager, closeTimeout, criticalChains, sybilProtectionEnabled, trackedNets, onFatal, healthConfig, metricsRegisterer any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Initialize", reflect.TypeOf((*MockRouter)(nil).Initialize), nodeID, log, timeoutManager, closeTimeout, criticalChains, sybilProtectionEnabled, trackedNets, onFatal, healthConfig, metricsRegisterer)
}

// RemoveChain mocks base method.
func (m *MockRouter) RemoveChain(chainID ids.ID) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "RemoveChain", chainID)
}

// RemoveChain indicates an expected call of RemoveChain.
func (mr *MockRouterMockRecorder) RemoveChain(chainID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveChain", reflect.TypeOf((*MockRouter)(nil).RemoveChain), chainID)
}
