import type { JSONSchema7 } from "json-schema";
import type { StandardSchemaV1 } from "@standard-schema/spec";
import type { Tool } from "./tool-types.js";
/**
 * Type for a tool definition with JSON Schema parameters.
 */
export type ToolJSONSchema = {
    description?: string;
    parameters: JSONSchema7;
};
export type ToToolsJSONSchemaOptions = {
    /**
     * Filter to determine which tools to include.
     * Defaults to excluding disabled tools and backend tools.
     */
    filter?: (name: string, tool: Tool) => boolean;
};
/**
 * Converts a schema to JSONSchema7.
 * Supports:
 * - StandardSchemaV1 with ~standard.toJSONSchema (e.g., Zod v4)
 * - StandardSchemaV1 with ~standard.jsonSchema.input() (e.g., Zod v4)
 * - Objects with toJSONSchema() method (e.g., Zod v4)
 * - Objects with toJSON() method
 * - Plain JSONSchema7 objects (must have a "type" property)
 */
export declare function toJSONSchema(schema: StandardSchemaV1 | JSONSchema7): JSONSchema7;
/**
 * Returns a copy of the JSON Schema with `required` removed recursively,
 * making every property optional. Array item schemas are left unchanged.
 */
export declare function toPartialJSONSchema(schema: JSONSchema7): JSONSchema7;
/**
 * Converts a record of tools to a record of tool definitions with JSON Schema parameters.
 * By default, filters out disabled tools and backend tools.
 */
export declare function toToolsJSONSchema(tools: Record<string, Tool> | undefined, options?: ToToolsJSONSchemaOptions): Record<string, ToolJSONSchema>;
//# sourceMappingURL=schema-utils.d.ts.map