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
TypeScript
/**
* 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