import type { ProjectType } from "./config.js";
/** Minimal `.lisa.config.json` shape used for standalone plugin selection. */
type LisaProjectConfig = Readonly<Record<string, unknown>>;
/**
 * Select exactly the Lisa plugin source directories applicable to a project.
 * @param destDir Host project root.
 * @param detectedTypes Expanded, ordered project types.
 * @returns Stable set containing base, detected stacks, and configured features.
 */
export declare function selectProjectLisaPlugins(destDir: string, detectedTypes: readonly ProjectType[]): Promise<ReadonlySet<string>>;
/**
 * Select plugins from already-safe project state without filesystem access.
 * @param config - Parsed project config
 * @param detectedTypes - Expanded, ordered project types
 * @param hasLocalWiki - Whether the local wiki contract marker exists
 * @returns Stable selected plugin set
 */
export declare function selectProjectLisaPluginsFromState(config: LisaProjectConfig, detectedTypes: readonly ProjectType[], hasLocalWiki: boolean): ReadonlySet<string>;
/**
 * Build a discovery predicate from an already-selected project plugin set.
 * Harness fan-out variants and unrelated canonical stacks both fail closed.
 * @param selectedPlugins Canonical plugin directory names for the project.
 * @returns Predicate suitable for skill/agent discovery.
 */
export declare function projectPluginFilter(selectedPlugins: ReadonlySet<string>): (pluginName: string) => boolean;
export {};
//# sourceMappingURL=lisa-plugin-selection.d.ts.map