"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateModelProviderInterface = generateModelProviderInterface;
function generateModelProviderInterface() {
    return /* ts */ `
export type ChatMessage =
  | { role: 'system' | 'user'; content: string }
  | { role: 'assistant'; content: string | null; tool_calls?: OpenAIToolCall[] }
  | { role: 'tool'; content: string; tool_call_id: string }

export type OpenAITool = {
  type: 'function'
  function: {
    name: string
    description: string
    parameters: Record<string, unknown>
  }
}

export type OpenAIToolCall = {
  id: string
  type: 'function'
  function: {
    name: string
    arguments: string
  }
}

export type AiProviderRequest = {
  messages: ChatMessage[]
  tools: OpenAITool[]
}

export type AiProviderResult = {
  assistantMessage: {
    role: 'assistant'
    content: string | null
    tool_calls: OpenAIToolCall[]
  }
  toolCall: OpenAIToolCall
}

export type AiModelProvider = {
  requestSingleToolCall(request: AiProviderRequest): Promise<AiProviderResult>
}
`;
}
//# sourceMappingURL=model-provider-interface.generator.js.map