export declare enum PromptNodeType {
    Piece = 1,
    Text = 2
}
export interface TextJSON {
    type: PromptNodeType.Text;
    text: string;
    lineBreakBefore: boolean | undefined;
}
export declare enum PieceCtorKind {
    BaseChatMessage = 1,
    Other = 2,
    ImageChatMessage = 3
}
export interface BasePieceJSON {
    type: PromptNodeType.Piece;
    ctor: PieceCtorKind.BaseChatMessage | PieceCtorKind.Other;
    children: PromptNodeJSON[];
}
export interface ImageChatMessagePieceJSON {
    type: PromptNodeType.Piece;
    ctor: PieceCtorKind.ImageChatMessage;
    children: PromptNodeJSON[];
    props: {
        src: string;
        detail?: "low" | "high";
    };
}
export type PieceJSON = BasePieceJSON | ImageChatMessagePieceJSON;
export type PromptNodeJSON = PieceJSON | TextJSON;
export interface PromptElementJSON {
    node: PieceJSON;
}
export declare function stringifyPromptElementJSON(element: PromptElementJSON): string;
