import { type PluginRecommendation, type PluginInstallMode, type StackSignal, type PluginCatalog } from '../../types/plugin-install.js';
export declare function loadCatalog(): Promise<PluginCatalog>;
/** Expose for tests that need to inject a catalog without touching the file system. */
export declare function setCatalogCache(catalog: PluginCatalog | null): void;
/**
 * Search all plugins in the catalog by keyword and/or stack filter.
 *
 * - No filters: returns all plugins (deduplicated across tiers).
 * - keyword: case-insensitive match against id, displayName, or description.
 * - stack: case-insensitive match against the plugin's stacks array.
 * - Both filters apply with AND logic.
 */
export declare function searchPlugins(keyword?: string, stack?: string): Promise<PluginRecommendation[]>;
/**
 * Return recommended plugins for the given stack signals and install mode.
 *
 * - 'minimal': always-tier plugins only
 * - 'recommended': always-tier + stack-matched plugins
 * - 'full': everything in the catalog that matches (always + stack-matched + optional)
 */
export declare function getRecommendedForStack(signals: StackSignal[], mode: PluginInstallMode): Promise<PluginRecommendation[]>;
//# sourceMappingURL=plugin-catalog.d.ts.map