import { type GenerateTextResult, type JSONValue, type CoreTool } from 'ai';
import { Response } from 'undici';
import { z } from 'zod';
import { AIFunction, AIFunctionOptions, BaseTemplateFunction } from '../types';
export type GenerateResult = GenerateTextResult<Record<string, CoreTool<any, any>>, Record<string, unknown>>;
export type GenerateJsonResult = GenerateResult & {
    object: JSONValue;
    toJsonResponse: () => Response;
};
export type StreamingResult = GenerateResult & {
    experimental_stream: AsyncIterable<string>;
};
export declare function isStreamingResult(result: unknown): result is StreamingResult;
export declare function isJsonResult(result: GenerateResult): result is GenerateJsonResult;
export declare function createAIFunction<T extends z.ZodType>(schema: T): AIFunction<T>;
export declare function createJsonResponse(result: GenerateJsonResult): Response;
export declare function createStreamResponse(result: StreamingResult): Response;
export declare function createTextResponse(result: GenerateResult): Response;
export declare function createTemplateFunction(defaultOptions?: AIFunctionOptions): BaseTemplateFunction;
//# sourceMappingURL=index.d.ts.map