import { Conversation } from "./Conversation.js";
import { ConvoNodeDescription, ConvoNodeExtendedDescription, ConvoNodeGraph, ConvoNodeGraphResult, ConvoNodeGraphSource, ConvoNodeResult, ConvoNodeRoute } from "./convo-node-graph-types.js";
import { ConvoCompletion, ConvoMessage, ConvoTag, FlatConvoConversation, FlatConvoMessage } from "./convo-types.js";
import { ConvoExecutionContext } from "./ConvoExecutionContext.js";
export interface ConvoNodeOrderingResult {
    inlineMessages: Record<string, ConvoMessage[]>;
    functionMessages: Record<string, ConvoMessage[]>;
    systemMessages: Record<string, ConvoMessage[]>;
    scriptMessages: Record<string, ConvoMessage[]>;
    allMessages: Record<string, ConvoMessage[]>;
}
export declare const applyConvoNodeOrdering: (messages: ConvoMessage[], conversation: Conversation, appendTail?: boolean) => ConvoNodeOrderingResult;
export declare const getConvoNodeOutput: (messages: FlatConvoMessage[], exe: ConvoExecutionContext, startIndex?: number) => any;
export declare const convoTagToNodeRoute: (tag: ConvoTag) => ConvoNodeRoute;
export declare const getConvoNodeMessages: (nodeId: string, messages: ConvoMessage[], includeRoutes?: boolean) => ConvoMessage[];
export declare const getExtendedConvoNodeDescription: (node: ConvoNodeDescription, source: ConvoNodeGraphSource, sourceMessages: ConvoMessage[]) => ConvoNodeExtendedDescription;
export declare const createConvoNodeGraph: (source: ConvoNodeGraphSource, sourceMessages: ConvoMessage[]) => ConvoNodeGraph;
export declare const removeConvoNodeMessages: (messages: ConvoMessage[]) => void;
export declare const getConvoConvoNodeResults: (flat: FlatConvoConversation) => ConvoNodeResult[];
export declare const createConvoNodeGraphResult: (completion: ConvoCompletion | null | undefined, errorObject?: any, error?: string | undefined) => ConvoNodeGraphResult;
