import * as Effect from 'effect/Effect'; import * as FileSystem from 'effect/FileSystem'; import * as Option from 'effect/Option'; import * as Path from 'effect/Path'; import * as Schema from 'effect/Schema'; import { PluginLoadError } from '../Errors.js'; import { McpJsonFile } from '../Mcp.js'; import { HooksSection } from '../Settings/HooksSection.js'; import { type PluginDefinition } from './Define.js'; import { PluginManifest } from './Manifest.js'; /** * Paths discovered during a plugin directory scan. * * @category Models * @since 0.1.0 */ export interface PluginScan { readonly rootDir: string; readonly manifestPath: Option.Option; readonly sourceManifest: Option.Option; readonly commandPaths: ReadonlyArray; readonly agentPaths: ReadonlyArray; readonly skillPaths: ReadonlyArray; readonly outputStylePaths: ReadonlyArray; readonly hooksPaths: ReadonlyArray; readonly inlineHooksConfig: Option.Option>; readonly mcpPaths: ReadonlyArray; readonly inlineMcpConfig: Option.Option; readonly lspPaths: ReadonlyArray; readonly themePaths: ReadonlyArray; readonly monitorPaths: ReadonlyArray; readonly binPaths: ReadonlyArray; readonly settingsPath: Option.Option; readonly inferredManifest: PluginManifest; } /** * A fully loaded plugin directory. * * @category Models * @since 0.1.0 */ export interface LoadedPlugin extends PluginDefinition { readonly rootDir: string; readonly sourceManifest: Option.Option; readonly inferredManifest: PluginManifest; } /** * Inspect a plugin directory and infer the canonical manifest paths for the * discovered component files. * * @category Loaders * @since 0.1.0 */ export declare const scan: (rootDir: string) => Effect.Effect; /** * Load an existing plugin directory into a typed `PluginDefinition`. * * @category Loaders * @since 0.1.0 */ export declare const load: (rootDir: string) => Effect.Effect; /** * Normalize a plugin definition's manifest by preserving explicit layout * choices and filling in default paths for missing component/config entries. * * @category Loaders * @since 0.1.0 */ export declare const sync: (definition: PluginDefinition | LoadedPlugin) => PluginDefinition; //# sourceMappingURL=Load.d.ts.map