UNPKG

apple-dev-mcp

Version:

Complete Apple development guidance: Human Interface Guidelines (design) + Technical Documentation for iOS, macOS, watchOS, tvOS, and visionOS

76 lines 3.12 kB
/** * Core interfaces for content generation system * Following SOLID principles with clear separation of concerns */ import type { HIGSection, HIGCategory, ApplePlatform, SearchResult, ContentQualityMetrics, ProcessedContent, QualityValidationResult, ExtractionStatistics } from '../types.js'; export interface IFileSystemService { writeFile(path: string, content: string): Promise<void>; readFile(path: string): Promise<string>; mkdir(path: string, options?: { recursive: boolean; }): Promise<void>; readdir(path: string): Promise<string[]>; exists(path: string): Promise<boolean>; stat(path: string): Promise<{ size: number; isDirectory(): boolean; }>; calculateDirectorySize(path: string): Promise<number>; } export interface IContentProcessor { process(section: HIGSection): Promise<string>; processContent(html: string, url: string): Promise<any>; extractSnippet(content: string, maxLength?: number): string; extractKeywords(content: string, section: HIGSection): string[]; } export interface IContentEnhancer { canEnhance(section: HIGSection): boolean; enhance(content: string, section: HIGSection): string; } export interface ISearchIndexer { addSection(section: HIGSection): void; generateIndex(): Record<string, any>; clear(): void; } export interface ICrossReferenceGenerator { addSection(section: HIGSection): void; generateReferences(): Record<string, any>; clear(): void; } export interface IContentQualityValidator { validateContent(content: string, section: HIGSection): Promise<QualityValidationResult>; calculateQualityScore(content: string): number; isHighQualityContent(metrics: ContentQualityMetrics): boolean; } export interface IAdvancedContentExtractor { extractContent(rawContent: string, section: HIGSection): Promise<ProcessedContent>; extractCodeExamples(content: string): string[]; extractImageReferences(content: string): string[]; generateSummary(content: string, section: HIGSection): string; } export interface ICrawleeHIGService { discoverSections(): Promise<HIGSection[]>; fetchSectionContent(section: HIGSection): Promise<HIGSection>; searchContent(query: string, platform?: ApplePlatform, category?: HIGCategory, limit?: number): Promise<SearchResult[]>; } export interface IExtractionMonitor { recordExtraction(section: HIGSection, quality: ContentQualityMetrics): void; getStatistics(): ExtractionStatistics; generateReport(): string; } export interface ContentGenerationConfig { readonly outputDirectory: string; readonly batchSize: number; readonly rateLimitDelay: number; readonly forceUpdate: boolean; readonly maxRetries: number; } export interface GenerationMetadata { readonly lastUpdated: string; readonly totalSections: number; readonly sectionsByPlatform: Record<ApplePlatform, number>; readonly sectionsByCategory: Record<HIGCategory, number>; readonly totalSize: number; readonly generationDuration: number; } //# sourceMappingURL=content-interfaces.d.ts.map