// Code generated by mockery v1.0.0. DO NOT EDIT.

// This comment works around https://github.com/vektra/mockery/issues/155

package referees

import (
	context "context"

	api "github.com/prometheus/client_golang/api"

	mock "github.com/stretchr/testify/mock"

	model "github.com/prometheus/common/model"

	time "time"

	v1 "github.com/prometheus/client_golang/api/prometheus/v1"
)

// mockPrometheusAPI is an autogenerated mock type for the prometheusAPI type
type mockPrometheusAPI struct {
	mock.Mock
}

// AlertManagers provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) AlertManagers(ctx context.Context) (v1.AlertManagersResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.AlertManagersResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.AlertManagersResult); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Get(0).(v1.AlertManagersResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Alerts provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) Alerts(ctx context.Context) (v1.AlertsResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.AlertsResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.AlertsResult); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Get(0).(v1.AlertsResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// CleanTombstones provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) CleanTombstones(ctx context.Context) error {
	ret := _m.Called(ctx)

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context) error); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// Config provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) Config(ctx context.Context) (v1.ConfigResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.ConfigResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.ConfigResult); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Get(0).(v1.ConfigResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// DeleteSeries provides a mock function with given fields: ctx, matches, startTime, endTime
func (_m *mockPrometheusAPI) DeleteSeries(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) error {
	ret := _m.Called(ctx, matches, startTime, endTime)

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, []string, time.Time, time.Time) error); ok {
		r0 = rf(ctx, matches, startTime, endTime)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// Flags provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) Flags(ctx context.Context) (v1.FlagsResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.FlagsResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.FlagsResult); ok {
		r0 = rf(ctx)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(v1.FlagsResult)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// LabelNames provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) LabelNames(ctx context.Context) ([]string, api.Warnings, error) {
	ret := _m.Called(ctx)

	var r0 []string
	if rf, ok := ret.Get(0).(func(context.Context) []string); ok {
		r0 = rf(ctx)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

	var r1 api.Warnings
	if rf, ok := ret.Get(1).(func(context.Context) api.Warnings); ok {
		r1 = rf(ctx)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(api.Warnings)
		}
	}

	var r2 error
	if rf, ok := ret.Get(2).(func(context.Context) error); ok {
		r2 = rf(ctx)
	} else {
		r2 = ret.Error(2)
	}

	return r0, r1, r2
}

// LabelValues provides a mock function with given fields: ctx, label
func (_m *mockPrometheusAPI) LabelValues(ctx context.Context, label string) (model.LabelValues, api.Warnings, error) {
	ret := _m.Called(ctx, label)

	var r0 model.LabelValues
	if rf, ok := ret.Get(0).(func(context.Context, string) model.LabelValues); ok {
		r0 = rf(ctx, label)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(model.LabelValues)
		}
	}

	var r1 api.Warnings
	if rf, ok := ret.Get(1).(func(context.Context, string) api.Warnings); ok {
		r1 = rf(ctx, label)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(api.Warnings)
		}
	}

	var r2 error
	if rf, ok := ret.Get(2).(func(context.Context, string) error); ok {
		r2 = rf(ctx, label)
	} else {
		r2 = ret.Error(2)
	}

	return r0, r1, r2
}

// Query provides a mock function with given fields: ctx, query, ts
func (_m *mockPrometheusAPI) Query(ctx context.Context, query string, ts time.Time) (model.Value, api.Warnings, error) {
	ret := _m.Called(ctx, query, ts)

	var r0 model.Value
	if rf, ok := ret.Get(0).(func(context.Context, string, time.Time) model.Value); ok {
		r0 = rf(ctx, query, ts)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(model.Value)
		}
	}

	var r1 api.Warnings
	if rf, ok := ret.Get(1).(func(context.Context, string, time.Time) api.Warnings); ok {
		r1 = rf(ctx, query, ts)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(api.Warnings)
		}
	}

	var r2 error
	if rf, ok := ret.Get(2).(func(context.Context, string, time.Time) error); ok {
		r2 = rf(ctx, query, ts)
	} else {
		r2 = ret.Error(2)
	}

	return r0, r1, r2
}

// QueryRange provides a mock function with given fields: ctx, query, r
func (_m *mockPrometheusAPI) QueryRange(ctx context.Context, query string, r v1.Range) (model.Value, api.Warnings, error) {
	ret := _m.Called(ctx, query, r)

	var r0 model.Value
	if rf, ok := ret.Get(0).(func(context.Context, string, v1.Range) model.Value); ok {
		r0 = rf(ctx, query, r)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(model.Value)
		}
	}

	var r1 api.Warnings
	if rf, ok := ret.Get(1).(func(context.Context, string, v1.Range) api.Warnings); ok {
		r1 = rf(ctx, query, r)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(api.Warnings)
		}
	}

	var r2 error
	if rf, ok := ret.Get(2).(func(context.Context, string, v1.Range) error); ok {
		r2 = rf(ctx, query, r)
	} else {
		r2 = ret.Error(2)
	}

	return r0, r1, r2
}

// Rules provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) Rules(ctx context.Context) (v1.RulesResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.RulesResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.RulesResult); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Get(0).(v1.RulesResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Series provides a mock function with given fields: ctx, matches, startTime, endTime
func (_m *mockPrometheusAPI) Series(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) ([]model.LabelSet, api.Warnings, error) {
	ret := _m.Called(ctx, matches, startTime, endTime)

	var r0 []model.LabelSet
	if rf, ok := ret.Get(0).(func(context.Context, []string, time.Time, time.Time) []model.LabelSet); ok {
		r0 = rf(ctx, matches, startTime, endTime)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]model.LabelSet)
		}
	}

	var r1 api.Warnings
	if rf, ok := ret.Get(1).(func(context.Context, []string, time.Time, time.Time) api.Warnings); ok {
		r1 = rf(ctx, matches, startTime, endTime)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(api.Warnings)
		}
	}

	var r2 error
	if rf, ok := ret.Get(2).(func(context.Context, []string, time.Time, time.Time) error); ok {
		r2 = rf(ctx, matches, startTime, endTime)
	} else {
		r2 = ret.Error(2)
	}

	return r0, r1, r2
}

// Snapshot provides a mock function with given fields: ctx, skipHead
func (_m *mockPrometheusAPI) Snapshot(ctx context.Context, skipHead bool) (v1.SnapshotResult, error) {
	ret := _m.Called(ctx, skipHead)

	var r0 v1.SnapshotResult
	if rf, ok := ret.Get(0).(func(context.Context, bool) v1.SnapshotResult); ok {
		r0 = rf(ctx, skipHead)
	} else {
		r0 = ret.Get(0).(v1.SnapshotResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, bool) error); ok {
		r1 = rf(ctx, skipHead)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Targets provides a mock function with given fields: ctx
func (_m *mockPrometheusAPI) Targets(ctx context.Context) (v1.TargetsResult, error) {
	ret := _m.Called(ctx)

	var r0 v1.TargetsResult
	if rf, ok := ret.Get(0).(func(context.Context) v1.TargetsResult); ok {
		r0 = rf(ctx)
	} else {
		r0 = ret.Get(0).(v1.TargetsResult)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context) error); ok {
		r1 = rf(ctx)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// TargetsMetadata provides a mock function with given fields: ctx, matchTarget, metric, limit
func (_m *mockPrometheusAPI) TargetsMetadata(ctx context.Context, matchTarget string, metric string, limit string) ([]v1.MetricMetadata, error) {
	ret := _m.Called(ctx, matchTarget, metric, limit)

	var r0 []v1.MetricMetadata
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string) []v1.MetricMetadata); ok {
		r0 = rf(ctx, matchTarget, metric, limit)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]v1.MetricMetadata)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, string, string, string) error); ok {
		r1 = rf(ctx, matchTarget, metric, limit)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}
