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

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

import (
	context "context"
	reflect "reflect"

	prometheus "github.com/prometheus/client_golang/prometheus"
	gomock "go.uber.org/mock/gomock"

	health "github.com/bucketeer-io/bucketeer/v2/pkg/health"
	metrics "github.com/bucketeer-io/bucketeer/v2/pkg/metrics"
)

// MockRegisterer is a mock of Registerer interface.
type MockRegisterer struct {
	ctrl     *gomock.Controller
	recorder *MockRegistererMockRecorder
}

// MockRegistererMockRecorder is the mock recorder for MockRegisterer.
type MockRegistererMockRecorder struct {
	mock *MockRegisterer
}

// NewMockRegisterer creates a new mock instance.
func NewMockRegisterer(ctrl *gomock.Controller) *MockRegisterer {
	mock := &MockRegisterer{ctrl: ctrl}
	mock.recorder = &MockRegistererMockRecorder{mock}
	return mock
}

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

// MustRegister mocks base method.
func (m *MockRegisterer) MustRegister(arg0 ...prometheus.Collector) {
	m.ctrl.T.Helper()
	varargs := []any{}
	for _, a := range arg0 {
		varargs = append(varargs, a)
	}
	m.ctrl.Call(m, "MustRegister", varargs...)
}

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

// Unregister mocks base method.
func (m *MockRegisterer) Unregister(arg0 prometheus.Collector) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Unregister", arg0)
	ret0, _ := ret[0].(bool)
	return ret0
}

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

// MockMetrics is a mock of Metrics interface.
type MockMetrics struct {
	ctrl     *gomock.Controller
	recorder *MockMetricsMockRecorder
}

// MockMetricsMockRecorder is the mock recorder for MockMetrics.
type MockMetricsMockRecorder struct {
	mock *MockMetrics
}

// NewMockMetrics creates a new mock instance.
func NewMockMetrics(ctrl *gomock.Controller) *MockMetrics {
	mock := &MockMetrics{ctrl: ctrl}
	mock.recorder = &MockMetricsMockRecorder{mock}
	return mock
}

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

// Check mocks base method.
func (m *MockMetrics) Check(ctx context.Context) health.Status {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Check", ctx)
	ret0, _ := ret[0].(health.Status)
	return ret0
}

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

// DefaultRegisterer mocks base method.
func (m *MockMetrics) DefaultRegisterer() metrics.Registerer {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DefaultRegisterer")
	ret0, _ := ret[0].(metrics.Registerer)
	return ret0
}

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

// Registerer mocks base method.
func (m *MockMetrics) Registerer(path string) metrics.Registerer {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Registerer", path)
	ret0, _ := ret[0].(metrics.Registerer)
	return ret0
}

// Registerer indicates an expected call of Registerer.
func (mr *MockMetricsMockRecorder) Registerer(path any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Registerer", reflect.TypeOf((*MockMetrics)(nil).Registerer), path)
}

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

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

// Stop mocks base method.
func (m *MockMetrics) Stop() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Stop")
}

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