koishi-plugin-image-tools
Version:
Simple image operating plugin
29 lines (28 loc) • 1.27 kB
TypeScript
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[];