import { ZodType, ZodTypeAny, z } from "zod";
import { ConversationOptions } from "./Conversation";
import { ConvoCompletion, ConvoCompletionOptions, ConvoParsingResult, FlatConvoConversation, FlatConvoMessage } from "./convo-types";
export declare const getConvoCompletionAsync: (messagesOrOptions: string | ConvoCompletionOptions, conversationOptions?: ConversationOptions) => Promise<ConvoCompletion>;
export declare const getConvoTextCompletionAsync: (messagesOrOptions: string | ConvoCompletionOptions, conversationOptions?: ConversationOptions) => Promise<string | undefined>;
export declare const getConvoUserMessageCompletionAsync: (userMessage: string, conversationOptions?: ConversationOptions) => Promise<string | undefined>;
export declare const getConvoJsonCompletionAsync: <T = any>(messagesOrOptions: string | ConvoCompletionOptions, conversationOptions?: ConversationOptions) => Promise<T | undefined>;
export declare const callConvoFunctionAsync: <T = any>(messagesOrOptions: string | ConvoCompletionOptions, conversationOptions?: ConversationOptions) => Promise<T>;
export declare const callConvoFunctionWithSchemeAsync: <Z extends ZodTypeAny = ZodType<any, z.ZodTypeDef, any>, T = z.TypeOf<Z>>(functionName: string, functionDescription: string, params: Z, messagesOrOptions: string | ConvoCompletionOptions, conversationOptions?: ConversationOptions) => Promise<T | undefined>;
export interface FlattenedConvoResult {
    success: boolean;
    flat?: FlatConvoConversation;
    vars: Record<string, any>;
    messages: FlatConvoMessage[];
    parsingResult: ConvoParsingResult;
}
export declare const flattenConvoAsync: (code: string, options?: ConversationOptions) => Promise<FlattenedConvoResult>;
