/**
 * Shared LLM type definitions for AI template code generation.
 *
 * These strings are embedded into generated workflow code by the AI templates.
 * They provide the common type system that all AI workflows need.
 */
/** Core LLM types — embedded in all AI templates */
export declare const LLM_CORE_TYPES = "interface LLMMessage {\n  role: 'system' | 'user' | 'assistant' | 'tool';\n  content: string;\n  toolCallId?: string;\n}\n\ninterface LLMResponse {\n  content: string | null;\n  toolCalls: LLMToolCall[];\n  finishReason: 'stop' | 'tool_calls' | 'length' | 'error';\n  usage?: { promptTokens: number; completionTokens: number };\n}\n\ninterface LLMToolCall {\n  id: string;\n  name: string;\n  arguments: Record<string, unknown>;\n}\n\ninterface LLMTool {\n  name: string;\n  description: string;\n  parameters: {\n    type: 'object';\n    properties: Record<string, { type: string }>;\n    required?: string[];\n  };\n}\n\ninterface LLMProvider {\n  chat(\n    messages: LLMMessage[],\n    options?: { tools?: LLMTool[]; systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }\n  ): Promise<LLMResponse>;\n}";
/** Simplified LLM types — for templates that don't need tool calling */
export declare const LLM_SIMPLE_TYPES = "interface LLMMessage {\n  role: 'system' | 'user' | 'assistant' | 'tool';\n  content: string;\n  toolCallId?: string;\n}\n\ninterface LLMToolCall {\n  id: string;\n  name: string;\n  arguments: Record<string, unknown>;\n}\n\ninterface LLMResponse {\n  content: string | null;\n  toolCalls: LLMToolCall[];\n  finishReason: 'stop' | 'tool_calls' | 'length' | 'error';\n  usage?: { promptTokens: number; completionTokens: number };\n}\n\ninterface LLMProvider {\n  chat(messages: LLMMessage[], options?: { systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }): Promise<LLMResponse>;\n}";
/** Mock provider factory code */
export declare const LLM_MOCK_PROVIDER = "const createMockProvider = (): LLMProvider => ({\n  async chat(messages) {\n    const lastMessage = messages[messages.length - 1];\n    return {\n      content: `[Mock response to: ${(lastMessage?.content ?? '').slice(0, 50)}...]`,\n      toolCalls: [],\n      finishReason: 'stop',\n      usage: { promptTokens: 10, completionTokens: 20 },\n    };\n  },\n});\n\nconst llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();";
/** Mock provider with tool calling support (for ai-agent) */
export declare const LLM_MOCK_PROVIDER_WITH_TOOLS = "const createMockProvider = (): LLMProvider => ({\n  async chat(messages, options) {\n    const last = messages[messages.length - 1];\n    if (options?.tools && last.content.toLowerCase().includes('search')) {\n      return {\n        content: null,\n        toolCalls: [\n          {\n            id: 'call_' + Date.now(),\n            name: 'search',\n            arguments: { query: last.content },\n          },\n        ],\n        finishReason: 'tool_calls',\n        usage: { promptTokens: 15, completionTokens: 30 },\n      };\n    }\n\n    return {\n      content: '[Mock answer] ' + last.content,\n      toolCalls: [],\n      finishReason: 'stop',\n      usage: { promptTokens: 10, completionTokens: 20 },\n    };\n  },\n});\n\nconst llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();";
//# sourceMappingURL=llm-types.d.ts.map