import { Scope, InstalledPlugin, KnownMarketplace, MarketplaceManifest, InstalledPluginsRegistry, MarketplacePluginStatus } from "../types/index.js";
/**
 * PluginCore
 *
 * Encapsulates plugin management logic, providing a high-level API for
 * installing, uninstalling, enabling, and disabling plugins.
 */
export declare class PluginCore {
    private container;
    private pluginManager;
    private pluginScopeManager;
    private marketplaceService;
    private configurationService;
    private workdir;
    constructor(workdir?: string);
    /**
     * Installs a plugin from a marketplace
     */
    installPlugin(pluginId: string, scope?: Scope): Promise<InstalledPlugin>;
    /**
     * Uninstalls a plugin and removes it from all configuration scopes
     */
    uninstallPlugin(pluginId: string): Promise<void>;
    /**
     * Enables a plugin in the specified scope. If no scope is provided, it tries to find
     * the scope where the plugin is already configured, or defaults to "user".
     */
    enablePlugin(pluginId: string, scope?: Scope): Promise<Scope>;
    /**
     * Disables a plugin in the specified scope. If no scope is provided, it tries to find
     * the scope where the plugin is already configured, or defaults to "user".
     */
    disablePlugin(pluginId: string, scope?: Scope): Promise<Scope>;
    /**
     * Updates an installed plugin to the latest version from its marketplace
     */
    updatePlugin(pluginId: string): Promise<InstalledPlugin>;
    /**
     * Toggles auto-update for a marketplace
     */
    toggleAutoUpdate(name: string, enabled: boolean): Promise<void>;
    /**
     * Lists all plugins from all registered marketplaces with their installation and enabled status
     */
    listPlugins(): Promise<{
        plugins: MarketplacePluginStatus[];
        mergedEnabled: Record<string, boolean>;
    }>;
    /**
     * Adds a new marketplace
     */
    addMarketplace(input: string): Promise<KnownMarketplace>;
    /**
     * Removes a marketplace by name
     */
    removeMarketplace(name: string): Promise<void>;
    /**
     * Updates a specific marketplace or all marketplaces
     */
    updateMarketplace(name?: string): Promise<void>;
    /**
     * Lists all registered marketplaces
     */
    listMarketplaces(): Promise<KnownMarketplace[]>;
    /**
     * Gets the registry of all installed plugins
     */
    getInstalledPlugins(): Promise<InstalledPluginsRegistry>;
    /**
     * Gets the merged enabled state of all plugins across all scopes
     */
    getMergedEnabledPlugins(): Record<string, boolean>;
    /**
     * Loads a marketplace manifest from a local path
     */
    loadMarketplaceManifest(marketplacePath: string): Promise<MarketplaceManifest>;
    /**
     * Resolves the local path for a marketplace
     */
    getMarketplacePath(marketplace: KnownMarketplace): string;
    /**
     * Finds the scope where a plugin is currently enabled/disabled
     */
    findPluginScope(pluginId: string): Scope | null;
    /**
     * Removes a plugin from the enabled plugins in the specified scope
     */
    removeEnabledPlugin(scope: Scope, pluginId: string): Promise<void>;
}
//# sourceMappingURL=plugin.d.ts.map