/** * The project-local plugin store: reconcile (`/.skaile/plugins/`) * then load the reconciled plugins into the `pluginRegistry`. * * `ensurePluginsLoaded` is the single entrypoint commands wire in. It is a * guarded no-op when `plugins` is empty/undefined — zero overhead for the * common case where no project declares `plugins:` in `skaile.yaml`. */ import { type PluginRegistry } from "@skaile/workspaces/plugin-registry"; import type { Logger } from "@skaile/workspaces/types"; import { type LoadResult } from "./load.js"; import { type ReconcileOptions } from "./reconcile.js"; export type { LoadResult } from "./load.js"; export { loadPlugins } from "./load.js"; export type { ReconcileOptions } from "./reconcile.js"; export { reconcilePlugins } from "./reconcile.js"; export { specName } from "./spec.js"; /** Options for {@link ensurePluginsLoaded}. */ export interface EnsurePluginsOptions extends ReconcileOptions { log?: Logger; } /** * Reconcile the plugin store then load each plugin into `registry`. * * No-op (returns immediately) when `plugins` is empty/undefined, so the common * no-plugins path costs nothing. * * @param projectDir - Project root. * @param plugins - The `skaile.yaml` `plugins:` list (may be undefined). * @param registry - Registry to register into. Defaults to `pluginRegistry`. * @param opts - Injectable installer / lock slice + optional logger. * @returns The load result, or an empty result when there are no plugins. */ export declare function ensurePluginsLoaded(projectDir: string, plugins: string[] | undefined, registry?: PluginRegistry, opts?: EnsurePluginsOptions): Promise; //# sourceMappingURL=index.d.ts.map