import type { IPlugin, PluginContext, PluginBuilder, PluginPermission } from "./types"; import { z } from "zod"; /** * Abstract base class for Plugins to extend. * Provides default implementations for optional methods. */ export declare abstract class Plugin implements IPlugin { abstract name: string; abstract version: string; description?: string; author?: string; dependencies?: Record; permissions?: PluginPermission[]; allowedDomains?: string[]; configSchema?: z.ZodSchema; defaultConfig?: Record; onLoad(context: PluginContext): Promise | void; onUnload(): Promise | void; onStarted(): Promise | void; onReload(context: PluginContext): Promise | void; setup(build: PluginBuilder): void | Promise; } /** * Helper function to define a plugin object with type inference. * Useful for functional-style plugin definitions. */ export declare function definePlugin(plugin: IPlugin): IPlugin; //# sourceMappingURL=Plugin.d.ts.map