/** * Co-occurrence Algorithm * * Recommends plugins that are frequently used together with * the user's installed plugins (collaborative filtering). * * @since v1.66.0 */ import type { AlgorithmResult, CooccurrenceEntry, Recommendation, RecommendationContext } from '../recommendation-types.js'; /** * Co-occurrence matrix for tracking plugin relationships */ export declare class CooccurrenceMatrix { private matrix; private totalServers; /** * Add a co-occurrence observation */ addObservation(pluginA: string, pluginB: string, probability: number, sampleSize?: number): void; /** * Get co-occurrence probability between two plugins */ getProbability(pluginA: string, pluginB: string): number; /** * Get all related plugins for a given plugin */ getRelated(pluginId: string): Array<{ pluginId: string; probability: number; }>; /** * Get all entries in the matrix */ getAllEntries(): CooccurrenceEntry[]; /** * Load data from array of entries */ loadFromEntries(entries: CooccurrenceEntry[]): void; /** * Clear the matrix */ clear(): void; /** * Get matrix size */ size(): number; } /** * Default co-occurrence data based on common plugin combinations */ export declare const DEFAULT_COOCCURRENCE_DATA: CooccurrenceEntry[]; /** * Find plugins frequently used together with installed plugins */ export declare function findComplementaryPlugins(context: RecommendationContext, matrix: CooccurrenceMatrix, maxResults?: number): Recommendation[]; /** * Create default co-occurrence matrix */ export declare function createDefaultMatrix(): CooccurrenceMatrix; /** * Run the co-occurrence algorithm */ export declare function runCooccurrenceAlgorithm(context: RecommendationContext, matrix?: CooccurrenceMatrix, maxResults?: number): AlgorithmResult; //# sourceMappingURL=cooccurrence.d.ts.map