import z from "zod";
/**
 * The zod schema for an anthropic tool definition
 */
export declare const anthropicToolDefinitionSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    input_schema: z.ZodObject<{
        type: z.ZodLiteral<"object">;
        properties: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
            type: z.ZodEnum<{
                string: "string";
                number: "number";
                boolean: "boolean";
                object: "object";
                null: "null";
                array: "array";
                integer: "integer";
            }>;
            description: z.ZodOptional<z.ZodString>;
            enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$loose>, z.ZodObject<{
            anyOf: z.ZodArray<z.ZodObject<{
                type: z.ZodEnum<{
                    string: "string";
                    number: "number";
                    boolean: "boolean";
                    object: "object";
                    null: "null";
                    array: "array";
                    integer: "integer";
                }>;
                description: z.ZodOptional<z.ZodString>;
                enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$loose>>;
        }, z.core.$strip>]>>;
        required: z.ZodOptional<z.ZodArray<z.ZodString>>;
        additionalProperties: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$loose>;
}, z.core.$strip>;
/**
 * The type of an anthropic tool definition
 */
export type AnthropicToolDefinition = z.infer<typeof anthropicToolDefinitionSchema>;
/**
 * Creates an Anthropic tool definition
 * @param toolNumber the number of the tool in that instance for example instance.tools.length + 1 to be used to fill in the name
 * @returns an Anthropic tool definition
 */
export declare function createAnthropicToolDefinition(toolNumber: number): AnthropicToolDefinition;
//# sourceMappingURL=toolSchemas.d.ts.map