import { Task, type inferSchemaIn, type TaskSchema, type TaskWithSchema } from "@trigger.dev/core/v3";
import { Tool, ToolCallOptions } from "ai";
export type ToolCallExecutionOptions = Omit<ToolCallOptions, "abortSignal">;
type ToolResultContent = Array<{
    type: "text";
    text: string;
} | {
    type: "image";
    data: string;
    mimeType?: string;
}>;
export type ToolOptions<TResult> = {
    experimental_toToolResultContent?: (result: TResult) => ToolResultContent;
};
declare function toolFromTask<TIdentifier extends string, TInput = void, TOutput = unknown>(task: Task<TIdentifier, TInput, TOutput>, options?: ToolOptions<TOutput>): Tool<TInput, TOutput>;
declare function toolFromTask<TIdentifier extends string, TTaskSchema extends TaskSchema | undefined = undefined, TOutput = unknown>(task: TaskWithSchema<TIdentifier, TTaskSchema, TOutput>, options?: ToolOptions<TOutput>): Tool<inferSchemaIn<TTaskSchema>, TOutput>;
declare function getToolOptionsFromMetadata(): ToolCallExecutionOptions | undefined;
export declare const ai: {
    tool: typeof toolFromTask;
    currentToolOptions: typeof getToolOptionsFromMetadata;
};
export {};
