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>;
    }
}
