export type AddOnMap = { [name in string]: T | null | undefined | false; }; export type PluginHook = (context: C) => R; type PluginHandle = { results: { ownerId: string; result: R; }[]; getKeyedAddons: (field: F) => KeydMappedAddon[]; }; export type Plugin = { register: (hook: PluginHook) => void; usePluginHooks: (context: C) => PluginHandle; }; type KeydAddon = T & { key: string; }; type KeydMappedAddon = A extends AddOnMap ? KeydAddon : KeydAddon; export type PluginHookResult

> = P extends Plugin ? R : never; export declare function pluginCreator(getPluginOwnerId: (hook: PluginHook) => string): () => Plugin; export {}; //# sourceMappingURL=hook-plugin-provider.d.mts.map