UNPKG

@vladimirdukelic/revolutionary-ui-factory

Version:

Revolutionary UI Factory System v2 - Generate ANY UI component for ANY framework with 60-95% code reduction

233 lines (232 loc) 7.14 kB
/** * Premium Features Implementation for Revolutionary UI Factory * Handles team, sync, analytics, library, and registry functionality */ export interface TeamMember { id: string; email: string; name: string; role: 'owner' | 'admin' | 'member' | 'viewer'; joinedAt: string; lastActive: string; permissions?: string[]; } export interface Team { id: string; name: string; members: TeamMember[]; created: string; plan: string; } type TeamRole = 'owner' | 'admin' | 'member' | 'viewer'; interface TeamInvitation { id: string; email: string; role: TeamRole; invitedBy: string; invitedAt: Date; status: 'pending' | 'accepted' | 'cancelled'; expiresAt: Date; } export declare class TeamManager { private teamMembers; private invitations; constructor(); private loadMockData; getTeam(): Promise<Team | null>; inviteMember(email: string, role?: string): Promise<boolean>; removeMember(memberId: string): Promise<boolean>; updateRole(memberId: string, role: string): Promise<boolean>; listMembers(): Promise<TeamMember[]>; listInvitations(): Promise<TeamInvitation[]>; resendInvitation(invitationId: string): Promise<boolean>; cancelInvitation(invitationId: string): Promise<boolean>; private getPermissionsForRole; } export interface SyncStatus { lastSync: string; localChanges: number; remoteChanges: number; conflicts: string[]; } export interface SyncableItem { id: string; type: 'component' | 'config' | 'template'; name: string; localPath: string; checksum: string; modifiedAt: string; } export declare class CloudSyncManager { private syncConfigPath; private localComponents; constructor(); private loadLocalComponents; getStatus(): Promise<SyncStatus>; push(): Promise<boolean>; pull(): Promise<boolean>; resolveConflicts(strategy?: 'local' | 'remote' | 'merge'): Promise<boolean>; showDiff(): Promise<void>; private getLocalItems; private detectLocalChanges; private detectConflicts; private getLastSyncTime; private saveItem; private updateSyncConfig; } export interface ComponentMetrics { componentId: string; name: string; uses: number; lastUsed: string; avgGenerationTime: number; codeReduction: string; } export interface UsageStats { totalComponents: number; totalGenerations: number; avgCodeReduction: string; topComponents: ComponentMetrics[]; timeSpent: number; } interface DetailedAnalytics { dailyBreakdown: Array<{ date: string; generations: number; components: number; codeReduction: string; }>; frameworkStats: Record<string, number>; featureUsage: Record<string, number>; errorRate: number; performance: { avgGenerationTime: number; p95GenerationTime: number; p99GenerationTime: number; }; } export declare class AnalyticsManager { private localStats; private usageHistory; constructor(); private loadLocalStats; getStats(period?: string): Promise<UsageStats>; private generateMockStats; getComponentStats(componentId: string): Promise<ComponentMetrics | null>; getDetailedAnalytics(period?: string): Promise<DetailedAnalytics>; private generateMockDetailedAnalytics; trackUsage(componentType: string, metrics: any): Promise<void>; exportAnalytics(format?: 'json' | 'csv'): Promise<string>; getInsights(): Promise<string[]>; private saveLocalStats; } export interface LibraryComponent { id: string; name: string; description: string; type: string; framework: string[]; tags: string[]; version: string; author: string; created: string; updated: string; published: boolean; } export declare class LibraryManager { private libraryPath; private localComponents; private componentTemplates; constructor(); private loadLocalLibrary; listComponents(): Promise<LibraryComponent[]>; searchComponents(query: string, filters?: { type?: string; framework?: string; tags?: string[]; }): Promise<LibraryComponent[]>; createComponent(component: Partial<LibraryComponent>, code: string): Promise<string>; getComponent(componentId: string): Promise<{ component: LibraryComponent; code: string; } | null>; updateComponent(componentId: string, updates: Partial<LibraryComponent>, code?: string): Promise<boolean>; createVersion(componentId: string, version: string, changes: string): Promise<boolean>; publishComponent(componentId: string): Promise<boolean>; deleteComponent(componentId: string): Promise<boolean>; shareWithTeam(componentId: string): Promise<boolean>; importFromFile(filePath: string, metadata?: Partial<LibraryComponent>): Promise<string>; exportComponent(componentId: string, outputPath: string): Promise<void>; private saveComponent; private updateIndex; } export interface RegistryConfig { url: string; authToken: string; scope: string; publishConfig: { access: 'public' | 'restricted'; requiresApproval: boolean; }; } export interface RegistryPackage { name: string; version: string; description: string; author: string; published: string; downloads: number; private: boolean; } interface PackageVersion { version: string; published: string; downloads: number; deprecated?: boolean; deprecationMessage?: string; } interface RegistryStats { totalPackages: number; totalDownloads: number; totalVersions: number; storageUsed: string; lastPublished: string; } interface AccessToken { token: string; name: string; created: string; lastUsed: string; permissions: string[]; } export declare class RegistryManager { private registryConfigPath; private localPackages; private accessTokens; constructor(); private loadRegistryData; getConfig(): Promise<RegistryConfig | null>; setupRegistry(config: Partial<RegistryConfig>): Promise<boolean>; getStats(): Promise<RegistryStats>; listPackages(options?: { search?: string; scope?: string; private?: boolean; }): Promise<RegistryPackage[]>; getPackageVersions(packageName: string): Promise<PackageVersion[]>; publishPackage(packagePath: string, options?: { tag?: string; access?: 'public' | 'restricted'; dryRun?: boolean; }): Promise<boolean>; unpublishPackage(packageName: string, version?: string): Promise<boolean>; deprecatePackage(packageName: string, version: string, message: string): Promise<boolean>; getAccessToken(name?: string): Promise<string | null>; listTokens(): Promise<AccessToken[]>; revokeToken(tokenName: string): Promise<boolean>; configureNpmrc(registryUrl?: string, token?: string): Promise<void>; private saveRegistryData; } export declare const mockTeamData: Team; export declare const mockAnalyticsData: UsageStats; export {};