/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Anthropic input schema format
 */
export interface AnthropicInputSchema {
    type: 'object';
    properties?: Record<string, AnthropicPropertySchema>;
    required: string[];
    [key: string]: unknown;
}
/**
 * Anthropic property schema (recursive for nested objects/arrays)
 */
export interface AnthropicPropertySchema {
    type: string;
    description?: string;
    enum?: string[];
    items?: AnthropicPropertySchema;
    properties?: Record<string, AnthropicPropertySchema>;
    required?: string[];
    minimum?: number;
    maximum?: number;
    minLength?: number;
    maxLength?: number;
    default?: unknown;
}
/**
 * Anthropic tool format
 */
export interface AnthropicTool {
    name: string;
    description: string;
    input_schema: AnthropicInputSchema;
}
/**
 * Input format from Gemini-style tool declarations
 */
interface GeminiToolDeclaration {
    name: string;
    description?: string;
    parametersJsonSchema?: unknown;
    parameters?: unknown;
}
/**
 * Convert a Gemini-style schema to Anthropic input_schema format.
 * Handles:
 * - Uppercase type enums → lowercase strings
 * - Missing required fields → adds empty array
 * - String numeric values → proper numbers
 * - Recursive property/items conversion
 */
export declare function convertSchemaToAnthropic(schema: unknown): AnthropicInputSchema;
/**
 * Convert an array of Gemini-style tool declarations to Anthropic format
 */
export declare function convertToolsToAnthropic(geminiTools?: Array<{
    functionDeclarations?: GeminiToolDeclaration[];
}>): AnthropicTool[] | undefined;
export {};
