import { ProviderName, AdapterMode, ToolDefinition, AdapterResult } from './types.js'; export { PROVIDER_DISPLAY_NAMES, ToolResult, ToolResultContent } from './types.js'; import { AnyAdapterConfig, GeneratorAdapter, AdapterConfig, GenerateParams, ClaudeSdkConfig } from './base.js'; import { DataContract, JsonObject } from '@ggui-ai/protocol'; import { z } from 'zod'; import '@anthropic-ai/claude-agent-sdk'; /** * Get an adapter instance for the given provider and mode. */ declare function getAdapter(provider: ProviderName, mode: AdapterMode, config?: AnyAdapterConfig): Promise; /** * List all registered adapter combinations and their availability. */ declare function listAdapters(config?: AnyAdapterConfig): Promise>; /** * Context for creating generator tools. * Allows passing app-specific component docs. */ interface GeneratorToolsContext { /** App-specific design context (DESIGN.md content) */ designContext?: string; /** App-specific reusable component documentation */ componentContext?: string; /** Data contract for validation (props, stream, actions) */ contract?: DataContract; /** Sample props for render smoke test (realistic data matching the contract) */ sampleProps?: JsonObject; } /** * Create the SDK-agnostic tool definitions for UI generation. * * 6 tools matching the MCP server: * 1. get_primitives — available UI components * 2. get_design_system — CSS variable tokens * 3. get_app_components — app-specific reusable components * 4. validate_component — pre-compilation check * 5. self_check — typecheck + lint + render smoke test * 6. compile_component — TSX→JS via esbuild * * Each tool uses the exact same handlers as the production MCP server, * but wrapped in a provider-neutral format. */ declare function createGeneratorTools(context?: GeneratorToolsContext): ToolDefinition[]; /** * Convert a Zod object schema to JSON Schema. * Uses Zod v4's built-in toJSONSchema() function. */ declare function zodToJsonSchema(schema: z.ZodType): JsonObject; declare class ClaudeRawAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "Claude (Raw API)"; private client; constructor(config?: AdapterConfig); isAvailable(): boolean; generate(params: GenerateParams): Promise; } declare class ClaudeSdkAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "Claude (Agent SDK)"; constructor(config?: ClaudeSdkConfig); /** Narrowed config access for Claude SDK-specific fields. */ private get sdkConfig(); isAvailable(): boolean; generate(params: GenerateParams): Promise; } declare class OpenAiRawAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "OpenAI (Raw API)"; private client; constructor(config?: AdapterConfig); isAvailable(): boolean; generate(params: GenerateParams): Promise; } declare class OpenAiSdkAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "OpenAI (Agents SDK)"; constructor(config?: AdapterConfig); isAvailable(): boolean; generate(params: GenerateParams): Promise; } declare class GoogleRawAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "Google Gemini (Interactions API)"; private client; constructor(config?: AdapterConfig); isAvailable(): boolean; generate(params: GenerateParams): Promise; } declare class GoogleSdkAdapter extends GeneratorAdapter { readonly provider: ProviderName; readonly mode: AdapterMode; readonly displayName = "Google Gemini (ADK)"; constructor(config?: AdapterConfig); isAvailable(): boolean; generate(params: GenerateParams): Promise; } export { AdapterConfig, AdapterMode, AdapterResult, AnyAdapterConfig, ClaudeRawAdapter, ClaudeSdkAdapter, ClaudeSdkConfig, GenerateParams, GeneratorAdapter, GoogleRawAdapter, GoogleSdkAdapter, OpenAiRawAdapter, OpenAiSdkAdapter, ProviderName, ToolDefinition, createGeneratorTools, getAdapter, listAdapters, zodToJsonSchema };