/** * Pattern Marketplace Service (FEAT-005) * * Community-driven pattern sharing, discovery, and installation. * Enables collective learning by allowing users to publish and consume * learned patterns from other users. */ import type { PublishedPattern, PublishPatternRequest, UpdatePatternRequest, PatternRating, RatePatternRequest, PatternInstallation, PatternSearchFilters, PatternSearchResult, PatternReport, PatternStats, MarketplaceAnalytics, ModerationStatus } from '../types/pattern-marketplace.js'; /** * Marketplace service for managing pattern publishing, discovery, and installation */ export declare class PatternMarketplaceService { private patterns; private ratings; private installations; private reports; private collections; private installsByDay; private usageByDay; /** * Publish a new pattern to the marketplace */ publishPattern(request: PublishPatternRequest): Promise; /** * Create a new version of an existing pattern */ private createNewVersion; /** * Update a published pattern (metadata only) */ updatePattern(patternId: string, authorId: string, update: UpdatePatternRequest): Promise; /** * Delete a pattern (only by author or admin) */ deletePattern(patternId: string, userId: string, isAdmin?: boolean): Promise; /** * Get a pattern by ID */ getPattern(patternId: string): PublishedPattern | undefined; /** * Search patterns with filters */ searchPatterns(filters: PatternSearchFilters): PatternSearchResult; /** * Rate a pattern */ ratePattern(patternId: string, userId: string, request: RatePatternRequest): Promise; /** * Recalculate average rating for a pattern */ private recalculateRating; /** * Get ratings for a pattern */ getPatternRatings(patternId: string): PatternRating[]; /** * Install a pattern for a user */ installPattern(patternId: string, userId: string): Promise; /** * Uninstall a pattern for a user */ uninstallPattern(patternId: string, userId: string): Promise; /** * Get user's installed patterns */ getUserInstallations(userId: string): PatternInstallation[]; /** * Record pattern usage */ recordUsage(patternId: string, userId: string, success: boolean): Promise; /** * Report a pattern */ reportPattern(patternId: string, userId: string, reason: 'spam' | 'broken' | 'inappropriate' | 'duplicate' | 'malicious' | 'other', details?: string): Promise; /** * Moderate a pattern (admin only) */ moderatePattern(patternId: string, moderatorId: string, status: ModerationStatus, notes?: string): Promise; /** * Get pattern statistics (for authors) */ getPatternStats(patternId: string): PatternStats | undefined; /** * Get marketplace analytics (admin only) */ getMarketplaceAnalytics(): MarketplaceAnalytics; /** * Track install by day */ private trackInstallByDay; /** * Track usage by day */ private trackUsageByDay; /** * Validate publish request */ private validatePublishRequest; /** * Increment semantic version */ private incrementVersion; /** * Get all patterns (admin only) */ getAllPatterns(): PublishedPattern[]; /** * Get all reports (admin only) */ getAllReports(): PatternReport[]; /** * Clear all data (testing only) */ clear(): void; } /** * Get singleton marketplace service instance */ export declare function getMarketplaceService(): PatternMarketplaceService; /** * Reset marketplace service (testing only) */ export declare function resetMarketplaceService(): void; //# sourceMappingURL=pattern-marketplace.d.ts.map