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[];
