/**
 * Discovery Service
 *
 * Generates personalized plugin discovery feeds.
 *
 * @since v1.66.4
 */
import type { RegistryPlugin } from '../../registry/registry-types.js';
import type { DiscoveryFeed, DiscoveryPreferences, DiscoverySection, NewPluginCriteria, TrendingCriteria } from './discovery-types.js';
/**
 * Service for generating discovery feeds
 */
export declare class DiscoveryService {
    private preferences;
    private newCriteria;
    private trendingCriteria;
    constructor(preferences?: Partial<DiscoveryPreferences>, newCriteria?: Partial<NewPluginCriteria>, trendingCriteria?: Partial<TrendingCriteria>);
    /**
     * Generate a discovery feed
     */
    generateFeed(registryPlugins: RegistryPlugin[], installedPlugins: RegistryPlugin[]): DiscoveryFeed;
    /**
     * Generate "New This Week" section
     */
    private generateNewSection;
    /**
     * Generate "Rising Stars" trending section
     */
    private generateTrendingSection;
    /**
     * Generate curated collection sections
     */
    private generateCuratedSections;
    /**
     * Generate personalized "For You" section
     */
    private generateForYouSection;
    /**
     * Generate category-based section
     */
    private generateCategorySection;
    /**
     * Generate random explore section
     */
    generateExploreSection(plugins: RegistryPlugin[], count?: number): DiscoverySection;
    /**
     * Save a plugin to wishlist
     */
    savePlugin(pluginId: string): void;
    /**
     * Remove plugin from wishlist
     */
    unsavePlugin(pluginId: string): void;
    /**
     * Hide a plugin from discovery
     */
    hidePlugin(pluginId: string): void;
    /**
     * Get saved plugins
     */
    getSavedPlugins(): Set<string>;
    /**
     * Update preferences
     */
    updatePreferences(updates: Partial<DiscoveryPreferences>): void;
    /**
     * Get current preferences
     */
    getPreferences(): DiscoveryPreferences;
}
/**
 * Get or create the discovery service
 */
export declare function getDiscoveryService(preferences?: Partial<DiscoveryPreferences>): DiscoveryService;
/**
 * Reset the service instance (for testing)
 */
export declare function resetDiscoveryService(): void;
//# sourceMappingURL=discovery-service.d.ts.map