// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/ihttpaccess/imodelfactoryacc (interfaces: IModelApiAcc)
//
// Generated by this command:
//
//	mockgen -destination=src/port/driven/ihttpaccess/imodelfactoryacc/modelfactoryaccmock/model_api_mock.go -package=modelfactoryaccmock github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/ihttpaccess/imodelfactoryacc IModelApiAcc
//

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

import (
	context "context"
	reflect "reflect"

	imodelfactoryacc "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/ihttpaccess/imodelfactoryacc"
	openai "github.com/sashabaranov/go-openai"
	gomock "go.uber.org/mock/gomock"
)

// MockIModelApiAcc is a mock of IModelApiAcc interface.
type MockIModelApiAcc struct {
	ctrl     *gomock.Controller
	recorder *MockIModelApiAccMockRecorder
	isgomock struct{}
}

// MockIModelApiAccMockRecorder is the mock recorder for MockIModelApiAcc.
type MockIModelApiAccMockRecorder struct {
	mock *MockIModelApiAcc
}

// NewMockIModelApiAcc creates a new mock instance.
func NewMockIModelApiAcc(ctrl *gomock.Controller) *MockIModelApiAcc {
	mock := &MockIModelApiAcc{ctrl: ctrl}
	mock.recorder = &MockIModelApiAccMockRecorder{mock}
	return mock
}

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

// ChatCompletion mocks base method.
func (m *MockIModelApiAcc) ChatCompletion(ctx context.Context, req *imodelfactoryacc.ChatCompletionReq) (openai.ChatCompletionResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ChatCompletion", ctx, req)
	ret0, _ := ret[0].(openai.ChatCompletionResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// StreamChatCompletion mocks base method.
func (m *MockIModelApiAcc) StreamChatCompletion(ctx context.Context, req *imodelfactoryacc.ChatCompletionReq) (chan string, chan error, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "StreamChatCompletion", ctx, req)
	ret0, _ := ret[0].(chan string)
	ret1, _ := ret[1].(chan error)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

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