import { Context, Schema } from 'koishi';
import { BaseMessage } from '@langchain/core/messages';
import { ChatLunaPlugin } from 'koishi-plugin-chatluna/services/chat';
export interface v2DataWorldInfoEntry {
    keys: string[];
    secondary_keys?: string[];
    comment: string;
    content: string;
    constant: boolean;
    selective: boolean;
    insertion_order: number;
    enabled: boolean;
    position: string;
    use_regex: boolean;
    extensions: v2DataWorldInfoEntryExtensionInfos;
    id: number;
}
export interface v2DataWorldInfoEntryExtensionInfos {
    position: number;
    exclude_recursion: boolean;
    probability: number;
    useProbability: boolean;
    depth: number;
    selectiveLogic: number;
    group: string;
    group_override: boolean;
    group_weight: number;
    prevent_recursion: boolean;
    delay_until_recursion: boolean;
    scan_depth: number;
    match_whole_words: boolean;
    use_group_scoring: boolean;
    case_sensitive: boolean;
    automation_id: string;
    role: number;
    vectorized: boolean;
    display_index: number;
}
export interface v2WorldInfoBook {
    name: string;
    entries: v2DataWorldInfoEntry[];
}
export interface v2CharData {
    name: string;
    description: string;
    character_version: string;
    personality: string;
    scenario: string;
    first_mes: string;
    mes_example: string;
    creator_notes: string;
    tags: string[];
    system_prompt: string;
    post_history_instructions: string;
    creator: string;
    alternate_greetings: string[];
    character_book: v2WorldInfoBook;
    extensions: v2CharDataExtensionInfos;
}
export interface v2CharDataExtensionInfos {
    talkativeness: number;
    fav: boolean;
    world: string;
    depth_prompt: {
        depth: number;
        prompt: string;
        role: 'system' | 'user' | 'assistant';
    };
    regex_scripts: RegexScriptData[];
    pygmalion_id?: string;
    github_repo?: string;
    source_url?: string;
    chub?: {
        full_path: string;
    };
    risuai?: {
        source: string[];
    };
}
export interface RegexScriptData {
    id: string;
    scriptName: string;
    findRegex: string;
    replaceString: string;
    trimStrings: string[];
    placement: number[];
    disabled: boolean;
    markdownOnly: boolean;
    promptOnly: boolean;
    runOnEdit: boolean;
    substituteRegex: boolean;
    minDepth: number;
    maxDepth: number;
}
export interface v1CharData {
    name: string;
    description: string;
    personality: string;
    scenario: string;
    first_mes: string;
    mes_example: string;
    creatorcomment: string;
    tags: string[];
    talkativeness: number;
    fav: boolean | string;
    create_date: string;
    data: v2CharData;
    chat: string;
    avatar: string;
    json_data: string;
}
export function readCharacterCard(ctx: Context, filePath: string): Promise<v2CharData>;
export function getCharacterCardV2(ctx: Context, jsonObject: Record<string, any>): v2CharData;
export function parseExampleMessage(card: v2CharData, messages: BaseMessage[]): BaseMessage[];
export function apply(ctx: Context, config: Config): void;
declare module 'koishi' {
    interface Events {
        'chatluna-character-card/load-character-card': (card: v2CharData) => Promise<void>;
    }
}
export function apply(ctx: Context, config: Config): void;
declare module 'koishi' {
    interface Events {
        'chatluna-character-card/load-all': () => Promise<void>;
    }
}
export function apply(ctx: Context, config: Config): Promise<void>;
export function plugins(ctx: Context, parent: Config): Promise<void>;
export function apply(ctx: Context, config: Config): void;
export const inject: {
    required: string[];
};
export const inject2: {
    chatluna: {
        required: boolean;
    };
    chatluna_character: {
        required: boolean;
    };
    vits: {
        required: boolean;
    };
};
export interface Config extends ChatLunaPlugin.Config {
    loadMode: string;
    jailbreak: boolean;
    systemMainPrompt: string;
    jailbreakPrompt: string;
    personalityPrompt: string;
    scenarioPrompt: string;
}
export const Config: Schema<Config>;
export const usage = "\n\u89D2\u8272\u5361\u653E\u5165 `data/chathub/sillytavern` \u76EE\u5F55\u4E0B\uFF0C\u89D2\u8272\u5361\u6587\u4EF6\u683C\u5F0F\u4E3A `json` \u6216 `png`\u3002\n\n\n\u4F7F\u7528\u5185\u5B58\u52A0\u8F7D\u6A21\u5F0F\u65F6\uFF0C\u89D2\u8272\u5361\u4F1A\u76F4\u63A5\u52A0\u8F7D\u5230\u5185\u5B58\u4E2D\uFF0C\u4F60\u53EF\u4EE5\u5B9E\u65F6\u5728 ChatLuna \u4E2D\u4F7F\u7528\u8FD9\u4E9B\u89D2\u8272\u5361\u3002\n\n\u4F7F\u7528\u6587\u4EF6\u52A0\u8F7D\u6A21\u5F0F\u65F6\uFF0C\u89D2\u8272\u5361\u4F1A\u8F6C\u6362\u4E3A ChatLuna \u7684\u9884\u8BBE\u6587\u4EF6\uFF0C\u4F60\u9700\u8981\u5728\u8F6C\u6362\u5B8C\u6210\u540E\u91CD\u542F ChatLuna \u624D\u80FD\u4F7F\u7528\u8FD9\u4E9B\u89D2\u8272\u5361\u3002\n\n\u66F4\u591A\u53C2\u8003\uFF1A[ChatLuna \u6587\u6863](https://chatluna.chat/ecosystem/extension/character-card.html)\n";
export const name = "chatluna-character-card";
