import { Context, segment, Element, Session, Next, Fragment } from "koishi";
import { Dvc } from "./type";
declare module "@koishijs/plugin-console" {
    interface Events {
        "davinci-003/getusage"(): string;
        "davinci-003/chatTest"(text: string): Promise<string>;
        "davinci-003/addPersonality"(personality: PersonalityConfig): Promise<string>;
    }
}
interface Personality {
    role: "system" | "user" | "assistant";
    content: string;
}
interface PersonalityConfig {
    name: string;
    personality: Personality[];
}
declare module "koishi" {
    interface Context {
        dvc: DVc;
    }
}
declare class DVc extends Dvc {
    pluginConfig: Dvc.Config;
    constructor(ctx: Context, config: Dvc.Config);
    /**
     *
     * @param lang 目标语言
     * @param prompt 要翻译的内容
     * @returns 翻译后的内容
     */
    translate(lang: string, prompt: string): Promise<string>;
    /**
     *
     * @param session 会话
     * @param prompt 描述词
     * @param n 生成数量
     * @param size 图片大小
     * @returns Promise<string|segment>
     */
    paint(session: Session, prompt: string, n: number, size: string): Promise<string | segment>;
    /**
     *
     * @param session 会话
     * @param prompt 会话内容
     * @returns Promise<string | Element>
     */
    dvc(session: Session, prompt: string): Promise<string | Element | void>;
    /**
     *
     * @param session 当前会话
     * @param next 通过函数
     * @returns 消息
     */
    middleware(session: Session, next: Next): Promise<string | string[] | segment | void | Fragment>;
    /**
     *
     * @param message 发送给chatgpt的json列表
     * @returns 将返回文字处理成json
     */
    chat_with_gpt(message: Dvc.Msg[]): Promise<string>;
    readableStreamDecoder(data: ReadableStream): Promise<{
        contents: string;
        reasoning_content: string;
    }>;
    /**
     * 切换下一个 key
     */
    key_number_pp(): void;
    /**
     * 先查询余额 ,如果余额为 0，切换key
     * @param session 会话
     * @param e Error
     */
    switch_key(e: Error): Promise<void>;
    /**
     *
     * @param sessionid QQ号
     * @returns 对应QQ的会话
     */
    get_chat_session(sessionid: string): Dvc.Msg[];
    /**
     *
     * @param msg prompt消息
     * @param sessionid QQ号
     * @returns json消息
     */
    chat(msg: string, sessionid: string, session: Session): Promise<string | segment>;
    /**
     *
     * @param cb chat 回调函数 chat_with_gpt
     * @param session 会话
     * @param session_of_id 会话 ID
     * @returns
     */
    try_control(session_of_id: Dvc.Msg[]): Promise<string>;
    /**
     * 删除人格逻辑
     * @param session
     * @param nick_name
     * @returns
     */
    rm_personality(session: Session, nick_name?: string): Promise<string>;
    /**
     * 删除人格
     * @param session 会话
     * @param nick_name 人格名称
     * @returns 字符串
     */
    personality_rm(session: Session, nick_name: string[]): string;
    /**
     *
     * @param session 会话
     * @param type 输出类型,字符串
     * @returns Promise<string>
     */
    switch_output(session: Session, type: string): Promise<string>;
    /**
     *
     * @param userId 用户QQ号
     * @param resp gpt返回的json
     * @returns 文字，图片或聊天记录
     */
    getContent(userId: string, resp: Dvc.Msg[], messageId: string, botId: string): Promise<string | segment>;
    /**
     *
     * @param session 会话
     * @returns 切换后的引擎
     */
    /**
     *
     * @param session 会话
     * @param prompt 人格昵称
     * @returns 人格切换状态
     */
    switch_personality(session: Session, prompt: string): Promise<string>;
    /**
     * 重置个人会话，保留人格
     * @param session 会话
     * @returns
     */
    reset(session: Session): string;
    add_personality(session: Session, nick_name: string): Promise<string>;
    /**
     * 设置人格
     * @param session 会话
     * @param nick_name 人格昵称
     * @param description 对话
     * @returns 字符
     */
    set_personality(session: Session, nick_name: string): string;
    /**
     *
     * @param session 当前会话
     * @returns 返回清空的消息
     */
    clear(session: Session): string;
}
declare namespace DVc { }
export default DVc;
