/** * Setup Service Interfaces - SOLID Compliant * Interface Segregation: Specific interfaces for each responsibility */ export interface SetupResult { success: boolean; message: string; data?: any; errors?: string[]; } export interface SetupStatus { projectValid: boolean; containerSystem: boolean; databases: { postgres: boolean; neo4j: boolean; redis: boolean; }; initialization: boolean; } export interface ContainerConfig { success: boolean; environment: string; dockerCommand: string; composeCommand: string; context?: string; } export interface DatabaseConfig { host: string; port: number; database?: string; user?: string; password?: string; } export interface IPrerequisiteChecker { checkProject(projectPath?: string): Promise; checkNodeVersion(): SetupResult; } export interface IContainerDetector { detect(): Promise; testConnection(): Promise; } export interface IContainerManager { startServices(config: ContainerConfig): Promise; waitForHealth(config: ContainerConfig): Promise; getContainerStatus(config: ContainerConfig): Promise; } export interface IDatabaseInitializer { testConnections(): Promise<{ postgres: boolean; neo4j: boolean; redis: boolean; }>; initializePostgreSQL(): Promise; initializeNeo4j(): Promise; initializeRedis(): Promise; } export interface ISetupReporter { displayProgress(step: string, status: 'running' | 'success' | 'error' | 'warning'): void; displaySummary(status: SetupStatus, duration: number): void; displayErrorHelp(error: Error): void; } export interface ISetupOrchestrator { execute(options: SetupOptions): Promise; } export interface SetupOptions { projectPath?: string; force?: boolean; skipDocker?: boolean; skipDatabases?: boolean; } //# sourceMappingURL=setup-interfaces.d.ts.map