import { Plugin, Hooks } from './types.js'; import '../internal/types.js'; type AllHooksPluginDefinition> = { name: TName; setup: (...params: Parameters["setup"]>) => (hookName: H) => (...hookParams: Parameters) => TApi; }; /** * A plugin that exposes the same API for all hooks. */ type AllHooksPlugin> = Plugin>; /** * Allows defining a type-safe plugin that can be used from any Astro hook. * * This wraps {@link definePlugin} and receives a factory for the API to be * called dynamically for each hook. This allows plugins to support any hook * even those added by new versions of astro or hooks added by other integrations. * * @see https://astro-integration-kit.netlify.app/core/define-plugin/ */ declare const defineAllHooksPlugin: >(plugin: AllHooksPluginDefinition) => AllHooksPlugin; export { type AllHooksPlugin, type AllHooksPluginDefinition, defineAllHooksPlugin };