import type { z } from 'zod/v4';
import type { ToolCallContext } from './ToolCallContext';
import type { ToolCallResult } from './ToolCallResult';
export type CreateToolOptions<CallSchema extends z.ZodObject<any>, CallFromGptSchema extends z.ZodObject<any> = CallSchema> = {
    /**
     * @param name This is the name for the tool that will be shared with the LLM when making requests.
     * @param description This is the description that will be shared with the LLM when making requests.
     * @param inputSchema This is the JSON-schema for the tool when it is invoked by a non-LLM.
     * @param inputSchemaForGpt This is the JSON-schema that will be shared with the LLM when making
     *                          requests during autonomous flows.
     * @param requiresGpt Set to true if this tool requires the usage of a GPT.
     * @param call This is the function that will be invoked when the tool is called by a non-LLM.
     * @param callFromGpt This is the function that will be invoked when the tool is called by an LLM.
     */
    name: string;
    description: string;
    requiresGpt: boolean;
    schema: CallSchema;
    gptSchema?: CallFromGptSchema;
    call(ctx: ToolCallContext, params: z.infer<CallSchema>): Promise<ToolCallResult> | ToolCallResult;
    callFromGpt?(ctx: ToolCallContext, params: z.infer<CallFromGptSchema>): Promise<ToolCallResult> | ToolCallResult;
};
//# sourceMappingURL=CreateToolOptions.d.ts.map