import { PluginSystemContext } from "./createPluginSystemContext.js"; import { CreateScopeReturnType } from "./lib/HookSystem.js"; import { PluginOptions, PluginHookExtraArgs, PluginHooks } from "./types.js"; /** * Plugin definition. */ export type Plugin = Record> = { /** * Information about the plugin. */ meta: { name: string; }; /** * Default options. */ defaultOptions?: TPluginOptions; /** * Plugin setup. */ setup: (context: Omit, "actions"> & Pick>, "hook" | "unhook">) => void | Promise; }; /** * @internal */ export type LoadedPlugin = Plugin & { resolve: string | Plugin; options: TPluginOptions; }; export declare const definePlugin: (plugin: Plugin) => Plugin;