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

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

import (
	context "context"
	sql "database/sql"
	reflect "reflect"

	interfaces "github.com/kweaver-ai/adp/execution-factory/operator-integration/server/interfaces"
	gomock "go.uber.org/mock/gomock"
)

// MockIComponentImpexConfig is a mock of IComponentImpexConfig interface.
type MockIComponentImpexConfig struct {
	ctrl     *gomock.Controller
	recorder *MockIComponentImpexConfigMockRecorder
	isgomock struct{}
}

// MockIComponentImpexConfigMockRecorder is the mock recorder for MockIComponentImpexConfig.
type MockIComponentImpexConfigMockRecorder struct {
	mock *MockIComponentImpexConfig
}

// NewMockIComponentImpexConfig creates a new mock instance.
func NewMockIComponentImpexConfig(ctrl *gomock.Controller) *MockIComponentImpexConfig {
	mock := &MockIComponentImpexConfig{ctrl: ctrl}
	mock.recorder = &MockIComponentImpexConfigMockRecorder{mock}
	return mock
}

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

// ExportConfig mocks base method.
func (m *MockIComponentImpexConfig) ExportConfig(ctx context.Context, exportReq *interfaces.ExportConfigReq) (*interfaces.ComponentImpexConfigModel, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ExportConfig", ctx, exportReq)
	ret0, _ := ret[0].(*interfaces.ComponentImpexConfigModel)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// ImportConfig mocks base method.
func (m *MockIComponentImpexConfig) ImportConfig(ctx context.Context, importReq *interfaces.ImportConfigReq) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ImportConfig", ctx, importReq)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// MockImpex is a mock of Impex interface.
type MockImpex[T any] struct {
	ctrl     *gomock.Controller
	recorder *MockImpexMockRecorder[T]
	isgomock struct{}
}

// MockImpexMockRecorder is the mock recorder for MockImpex.
type MockImpexMockRecorder[T any] struct {
	mock *MockImpex[T]
}

// NewMockImpex creates a new mock instance.
func NewMockImpex[T any](ctrl *gomock.Controller) *MockImpex[T] {
	mock := &MockImpex[T]{ctrl: ctrl}
	mock.recorder = &MockImpexMockRecorder[T]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockImpex[T]) EXPECT() *MockImpexMockRecorder[T] {
	return m.recorder
}

// Export mocks base method.
func (m *MockImpex[T]) Export(arg0 context.Context, arg1 *interfaces.ExportReq) (T, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Export", arg0, arg1)
	ret0, _ := ret[0].(T)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Export indicates an expected call of Export.
func (mr *MockImpexMockRecorder[T]) Export(arg0, arg1 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Export", reflect.TypeOf((*MockImpex[T])(nil).Export), arg0, arg1)
}

// Import mocks base method.
func (m *MockImpex[T]) Import(arg0 context.Context, arg1 *sql.Tx, arg2 *interfaces.ImportReq[T]) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Import", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

// Import indicates an expected call of Import.
func (mr *MockImpexMockRecorder[T]) Import(arg0, arg1, arg2 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Import", reflect.TypeOf((*MockImpex[T])(nil).Import), arg0, arg1, arg2)
}
