/** * Preferences Service * * Manages user preferences for plugins including enable/disable state, * skip migration flags, pinned plugins, and notes. * * Data is stored in ~/.pluginator/preferences.json * * @since v1.50.0 */ import type { PluginPreferenceState, PluginPreferences, ServerTarget } from '../types/preferences.js'; export declare class PreferencesService { private prefs; private path; private dirty; constructor(path?: string); /** Creates default preferences if file doesn't exist */ load(): Promise; save(): Promise; isDirty(): boolean; getPreferences(): PluginPreferences | null; private ensureLoaded; isDisabledOnProd(pluginName: string): boolean; isDisabledOnTest(pluginName: string): boolean; isDisabled(pluginName: string, server: ServerTarget): boolean; setDisabledOnProd(pluginName: string, disabled: boolean): void; setDisabledOnTest(pluginName: string, disabled: boolean): void; setDisabled(pluginName: string, server: ServerTarget, disabled: boolean): void; shouldSkipMigrate(pluginName: string): boolean; setSkipMigrate(pluginName: string, skip: boolean): void; getSkipMigratePlugins(): string[]; isPinned(pluginName: string): boolean; setPinned(pluginName: string, pinned: boolean): void; getPinnedPlugins(): string[]; isFavorite(pluginName: string): boolean; setFavorite(pluginName: string, favorite: boolean): void; toggleFavorite(pluginName: string): boolean; getFavoritePlugins(): string[]; getNote(pluginName: string): string | undefined; /** Empty string removes the note */ setNote(pluginName: string, note: string): void; removeNote(pluginName: string): void; getAllNotes(): Record; /** * Persisted review-queue skips: suggestionKey → confidence at dismissal. * Consumed by `collectSuggestions` (core/auto-source/suggestion-review.ts) * to keep dismissed suggestions hidden across scans until their evidence * gets stronger. */ getDismissedSuggestions(): Record; /** * Record a review-queue skip. `confidence` is the value the user saw when * dismissing — a future suggestion with HIGHER confidence resurfaces. * Re-dismissing an already-dismissed key updates the stored confidence. */ dismissSuggestion(key: string, confidence: number): void; getPluginState(pluginName: string): PluginPreferenceState; getPluginStates(pluginNames: string[]): Map; removePlugin(pluginName: string): void; getStats(): { disabledOnProdCount: number; disabledOnTestCount: number; skipMigrateCount: number; pinnedCount: number; favoritesCount: number; notesCount: number; }; } export declare function getPreferencesService(path?: string): PreferencesService; export declare function createPreferencesService(path?: string): PreferencesService; /** * Load the persisted review-queue dismissals via the singleton service * (reads from disk only when not already loaded — an in-memory instance with * unsaved state is never clobbered). Never throws: any failure returns an * empty map so suggestion collection degrades to "nothing dismissed". */ export declare function loadDismissedSuggestions(): Promise>; //# sourceMappingURL=preferences-service.d.ts.map