import { DiscoveredPlugin } from './plugin-discovery.js';
import { PluginManager } from './plugin-manager.js';
/**
 * Options for the plugin loader
 */
export interface PluginLoaderOptions {
    /** Directory for local plugins */
    pluginsDir?: string;
    /** Whether to load plugin dependencies automatically */
    autoLoadDependencies?: boolean;
}
/**
 * Loader for Vooodooo plugins
 */
export declare class PluginLoader {
    private pluginManager;
    private options;
    constructor(pluginManager: PluginManager, options?: PluginLoaderOptions | string);
    /**
     * Load all plugins from the plugins directory
     */
    loadPlugins(): Promise<void>;
    /**
     * Load a plugin from a directory
     */
    loadPlugin(pluginDir: string): Promise<void>;
    /**
     * Load a plugin from a DiscoveredPlugin object
     */
    loadDiscoveredPlugin(discoveredPlugin: DiscoveredPlugin): Promise<void>;
    /**
     * Load plugin dependencies
     */
    private loadDependencies;
    /**
     * Convert a package.json to a plugin manifest
     */
    private convertPackageToManifest;
}
/**
 * Create a plugin loader instance
 */
export declare function createPluginLoader(pluginManager: PluginManager, options?: PluginLoaderOptions | string): PluginLoader;
