UNPKG

koishi-plugin-image-tools

Version:
29 lines (28 loc) 1.27 kB
import { MemoryImage } from 'image-in-browser'; import { Command } from 'koishi'; import type { Skia } from '@ltxhhz/koishi-plugin-skia-canvas'; export interface ImageCommandBase { name: string; aliases?: string[]; args?: (string | Parameters<Command['alias']>)[]; options?: Parameters<Command['option']>[]; } export interface ImageOperationOption<A extends readonly any[] = any[], O extends Record<string, any> = any> { args: A; options: O; } export interface IgnoreImageCommand extends ImageCommandBase { ignoreImages: true; func: (_: any, canvasSv: Skia, options: ImageOperationOption<any, any>) => Promise<Blob | Blob[]>; } export interface SingleImageCommand extends ImageCommandBase { multiImages?: false; func: (image: MemoryImage, canvasSv: Skia, options: ImageOperationOption<any, any>) => Promise<Blob | Blob[]>; } export interface MultiImageCommand extends ImageCommandBase { multiImages: true; func: (images: MemoryImage[], canvasSv: Skia, options: ImageOperationOption<any, any>) => Promise<Blob | Blob[]>; } export type AcceptImageCommand = SingleImageCommand | MultiImageCommand; export type ImageCommand = IgnoreImageCommand | AcceptImageCommand; export declare const registeredCommands: ImageCommand[];