/**
 * Community Insights Service
 *
 * Aggregates reviews, stories, compatibility reports, and Q&A
 * from multiple sources.
 *
 * @since v1.66.5
 */
import type { AggregatedRating, CommunityInsights, CommunityQuestion, CommunityServiceConfig, CompatibilityReport, DiscordCommunity, GitHubIssueSummary, PluginReview, ReviewFilters, ReviewSortBy, ServerStory } from './community-types.js';
/**
 * Community insights service
 */
export declare class CommunityService {
    private config;
    private cache;
    private reviews;
    private stories;
    private compatibility;
    private questions;
    private githubSummaries;
    private discordCommunities;
    constructor(config?: Partial<CommunityServiceConfig>);
    /**
     * Get full community insights for a plugin
     */
    getInsights(pluginId: string): CommunityInsights;
    /**
     * Add a review for a plugin
     */
    addReview(review: PluginReview): void;
    /**
     * Get reviews for a plugin
     */
    getReviews(pluginId: string, sortBy?: ReviewSortBy, filters?: ReviewFilters): PluginReview[];
    /**
     * Calculate aggregated rating from all sources
     */
    getAggregatedRating(pluginId: string): AggregatedRating;
    /**
     * Add a server story
     */
    addStory(story: ServerStory): void;
    /**
     * Get server stories for a plugin
     */
    getStories(pluginId: string, serverType?: ServerStory['serverType']): ServerStory[];
    /**
     * Add a compatibility report
     */
    addCompatibilityReport(report: CompatibilityReport): void;
    /**
     * Get compatibility reports for a plugin
     */
    getCompatibilityReports(pluginId: string): CompatibilityReport[];
    /**
     * Check compatibility between two plugins
     */
    checkCompatibility(pluginA: string, pluginB: string): CompatibilityReport | undefined;
    /**
     * Set GitHub issue summary for a plugin
     */
    setGitHubSummary(summary: GitHubIssueSummary): void;
    /**
     * Get GitHub issue summary
     */
    getGitHubSummary(pluginId: string): GitHubIssueSummary | undefined;
    /**
     * Calculate recent activity level from issue dates
     */
    calculateActivityLevel(lastIssueDays: number): GitHubIssueSummary['recentActivity'];
    /**
     * Set Discord community info for a plugin
     */
    setDiscordCommunity(community: DiscordCommunity): void;
    /**
     * Get Discord community info
     */
    getDiscordCommunity(pluginId: string): DiscordCommunity | undefined;
    /**
     * Add a community question
     */
    addQuestion(question: CommunityQuestion): void;
    /**
     * Get questions for a plugin
     */
    getQuestions(pluginId: string, tag?: string): CommunityQuestion[];
    /**
     * Add an answer to a question
     */
    addAnswer(pluginId: string, questionId: string, answer: CommunityQuestion['answers'][0]): boolean;
    /**
     * Mark an answer as accepted
     */
    acceptAnswer(pluginId: string, questionId: string, answerId: string): boolean;
    /**
     * Get plugins with best community support
     */
    getWellSupportedPlugins(pluginIds: string[]): string[];
    /**
     * Search questions across all plugins
     */
    searchQuestions(query: string, limit?: number): CommunityQuestion[];
    /**
     * Clear all caches
     */
    clearCache(): void;
    /**
     * Reset all data
     */
    reset(): void;
    private filterReviews;
    private sortReviews;
    private createEmptyRating;
    private getCompatibilityKey;
    private calculateConfidence;
    private calculateSupportScore;
    private invalidateCache;
}
/**
 * Get community service singleton
 */
export declare function getCommunityService(): CommunityService;
/**
 * Reset community service (for testing)
 */
export declare function resetCommunityService(): void;
//# sourceMappingURL=community-service.d.ts.map