koishi-plugin-emojiluna
Version:
Smart emoji management plugin with AI categorization
57 lines (56 loc) • 1.91 kB
TypeScript
import { Context } from 'koishi';
import { Config } from './config';
import { EmojiLunaService } from './services';
import { Category, EmojiItem, EmojiSearchOptions } from './types';
export declare function apply(ctx: Context, config: Config): void;
export * from './config';
export * from './types';
export declare const inject: string[];
declare module 'koishi' {
interface Context {
emojiluna: EmojiLunaService;
}
interface Events {
'emojiluna/emoji-added': (emoji: EmojiItem) => void;
'emojiluna/emoji-deleted': (id: string) => void;
'emojiluna/emoji-updated': (emoji: EmojiItem) => void;
'emojiluna/category-added': (category: Category) => void;
'emojiluna/category-deleted': (id: string) => void;
}
interface Tables {
emojiluna_emojis: {
id: string;
name: string;
category: string;
path: string;
size: number;
mime_type: string;
created_at: Date;
tags: string;
image_hash: string;
};
emojiluna_categories: {
id: string;
name: string;
description: string;
emoji_count: number;
created_at: Date;
};
}
}
declare module '@koishijs/console' {
interface Events {
'emojiluna/getAiTaskStats': () => Promise<{
pending: number;
processing: number;
succeeded: number;
failed: number;
paused: boolean;
}>;
'emojiluna/getEmojiCount': (options?: EmojiSearchOptions) => Promise<number>;
'emojiluna/getFailedAiEmojiIds': () => Promise<string[]>;
'emojiluna/reanalyzeBatch': (ids: string[]) => Promise<number>;
'emojiluna/setAiPaused': (paused: boolean) => void;
'emojiluna/retryFailedTasks': () => Promise<number>;
}
}