// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/ava-labs/avalanchego/snow/networking/sender (interfaces: ExternalSender)
//
// Generated by this command:
//
//	mockgen -package=sendermock -destination=sendermock/external_sender.go -mock_names=ExternalSender=ExternalSender . ExternalSender
//

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

import (
	reflect "reflect"

	ids "github.com/ava-labs/avalanchego/ids"
	message "github.com/ava-labs/avalanchego/message"
	common "github.com/ava-labs/avalanchego/snow/engine/common"
	subnets "github.com/ava-labs/avalanchego/subnets"
	set "github.com/ava-labs/avalanchego/utils/set"
	gomock "go.uber.org/mock/gomock"
)

// ExternalSender is a mock of ExternalSender interface.
type ExternalSender struct {
	ctrl     *gomock.Controller
	recorder *ExternalSenderMockRecorder
	isgomock struct{}
}

// ExternalSenderMockRecorder is the mock recorder for ExternalSender.
type ExternalSenderMockRecorder struct {
	mock *ExternalSender
}

// NewExternalSender creates a new mock instance.
func NewExternalSender(ctrl *gomock.Controller) *ExternalSender {
	mock := &ExternalSender{ctrl: ctrl}
	mock.recorder = &ExternalSenderMockRecorder{mock}
	return mock
}

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

// Send mocks base method.
func (m *ExternalSender) Send(msg message.OutboundMessage, config common.SendConfig, subnetID ids.ID, allower subnets.Allower) set.Set[ids.NodeID] {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Send", msg, config, subnetID, allower)
	ret0, _ := ret[0].(set.Set[ids.NodeID])
	return ret0
}

// Send indicates an expected call of Send.
func (mr *ExternalSenderMockRecorder) Send(msg, config, subnetID, allower any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*ExternalSender)(nil).Send), msg, config, subnetID, allower)
}
