/** * Model Marketplace Manager * Manages third-party model discovery, ratings, and installations */ import { EventEmitter } from 'events'; import { MarketplaceStatus, ReviewStatus, ModelProvider, MarketplaceModel, ModelReview, ModelInstallation, SearchFilters, MarketplaceStats, ModelComparison, ProviderApplication } from './types'; export interface MarketplaceConfig { requireProviderVerification?: boolean; requireModelApproval?: boolean; allowCustomPricing?: boolean; minRatingForFeatured?: number; maxModelsPerProvider?: number; } export declare class MarketplaceManager extends EventEmitter { private config; private providers; private models; private reviews; private installations; private applications; constructor(config?: MarketplaceConfig); /** * Register a new provider */ registerProvider(provider: Omit): ModelProvider; /** * Verify a provider */ verifyProvider(providerId: string): ModelProvider | null; /** * Publish a model to the marketplace */ publishModel(model: Omit): MarketplaceModel; /** * Approve a pending model */ approveModel(modelId: string): MarketplaceModel | null; /** * Search models with filters */ searchModels(query?: string, filters?: SearchFilters, options?: { sortBy?: 'rating' | 'downloads' | 'recent' | 'relevance'; limit?: number; offset?: number; }): MarketplaceModel[]; /** * Get model details */ getModel(modelId: string): MarketplaceModel | null; /** * Install a model */ installModel(modelId: string, userId: string, configuration?: Record): ModelInstallation; /** * Uninstall a model */ uninstallModel(installationId: string, userId: string): boolean; /** * List user's installed models */ listInstalledModels(userId: string): ModelInstallation[]; /** * Add a review */ addReview(review: Omit): ModelReview; /** * Get model reviews */ getReviews(modelId: string, options?: { status?: ReviewStatus; sortBy?: 'rating' | 'helpful' | 'recent'; limit?: number; }): ModelReview[]; /** * Mark review as helpful */ markReviewHelpful(reviewId: string): boolean; /** * Compare models */ compareModels(modelIds: string[]): ModelComparison; /** * Get marketplace statistics */ getStats(): MarketplaceStats; /** * Get featured models */ getFeaturedModels(limit?: number): MarketplaceModel[]; /** * Submit provider application */ submitProviderApplication(application: Omit): ProviderApplication; /** * Review provider application */ reviewApplication(applicationId: string, approved: boolean, reviewNotes?: string): ProviderApplication | null; /** * Get provider details */ getProvider(providerId: string): ModelProvider | null; /** * Update model status */ updateModelStatus(modelId: string, status: MarketplaceStatus): MarketplaceModel | null; /** * Get health status */ getHealth(): { healthy: boolean; providers: number; models: number; activeModels: number; pendingModels: number; }; } //# sourceMappingURL=manager.d.ts.map