/**
 * JSON Schema to TypeBox Converter
 *
 * Converts MCP tool schemas (JSON Schema) to TypeBox schemas
 * for validation in new_indusvx.
 *
 * Reference: JSON Schema conversion adapted to TypeBox.
 */
import { type TSchema } from "@sinclair/typebox";
/**
 * JSON Schema types we support
 */
interface JSONSchema {
    type?: string | string[];
    description?: string;
    properties?: Record<string, JSONSchema>;
    required?: string[];
    items?: JSONSchema | JSONSchema[];
    enum?: (string | number | boolean | null)[];
    const?: string | number | boolean | null;
    additionalProperties?: boolean | JSONSchema;
    minimum?: number;
    maximum?: number;
    exclusiveMinimum?: number | boolean;
    exclusiveMaximum?: number | boolean;
    minLength?: number;
    maxLength?: number;
    pattern?: string;
    format?: string;
    minItems?: number;
    maxItems?: number;
    multipleOf?: number;
    default?: unknown;
    oneOf?: JSONSchema[];
    anyOf?: JSONSchema[];
    allOf?: JSONSchema[];
    $ref?: string;
}
/**
 * Convert JSON Schema to TypeBox schema.
 *
 * Handles:
 * - Primitive types (string, number, boolean, null)
 * - Objects with properties
 * - Arrays with items
 * - Optional fields (not in required array)
 * - Enums
 * - Nested structures
 */
export declare function jsonSchemaToTypeBox(schema: JSONSchema): TSchema;
/**
 * Apply passthrough to allow extra properties.
 *
 * MCP servers may return extra fields not in the schema,
 * so we use passthrough to avoid validation errors.
 */
export declare function applyPassthrough(schema: TSchema): TSchema;
/**
 * Convert MCP tool inputSchema to TypeBox with passthrough.
 * This is the main entry point for converting MCP tool schemas.
 */
export declare function convertMCPInputSchema(inputSchema: Record<string, unknown>): TSchema;
/**
 * Convert MCP tool outputSchema to TypeBox with passthrough.
 */
export declare function convertMCPOutputSchema(outputSchema: Record<string, unknown> | undefined): TSchema | undefined;
export {};
