/** * DaemonManager Factory * Issue #136: Phase 3 - Task 3.1 - DaemonManager abstraction * * Provides Factory pattern for creating DaemonManager instances with * issue-specific configurations while maintaining backward compatibility * with existing DaemonManager(pidFilePath: string) constructor. * * MF-CONS-002: Backward compatibility with existing constructor maintained * SF-002: Factory pattern for DaemonManager creation */ import { DaemonManager } from './daemon'; import type { ServerEnv } from './server-url'; import type { DaemonStatus, StartOptions } from '../types'; /** * DaemonManager interface (abstraction) * Defines the contract for daemon management operations */ export interface IDaemonManager { /** * Start the daemon process * @param options - Start options * @returns Process ID of the started daemon */ start(options: StartOptions): Promise; /** * Stop the daemon process * @param force - Use SIGKILL instead of SIGTERM * @returns true if stopped successfully */ stop(force?: boolean): Promise; /** * Get daemon status * @returns Status object or null if no PID file */ getStatus(): Promise; /** * Get the configuration this server runs with (Issue #1266) * @returns The effective env, with .env taking precedence over exported variables */ getEffectiveEnv(): ServerEnv; /** * Check if daemon is running * @returns true if running */ isRunning(): Promise; } /** * Configuration for DaemonManagerWrapper */ export interface DaemonManagerConfig { /** PID file path */ pidPath: string; /** Environment file path */ envPath: string; /** Database file path */ dbPath: string; /** Issue number (undefined for main server) */ issueNo?: number; } /** * Wrapper around existing DaemonManager to implement IDaemonManager * MF-CONS-002: Uses existing DaemonManager(pidFilePath: string) internally */ export declare class DaemonManagerWrapper implements IDaemonManager { private innerManager; private config; constructor(innerManager: DaemonManager, config: DaemonManagerConfig); start(options: StartOptions): Promise; stop(force?: boolean): Promise; getStatus(): Promise; getEffectiveEnv(): ServerEnv; isRunning(): Promise; /** * Get configuration (for testing/debugging) */ getConfig(): DaemonManagerConfig; } /** * Factory for creating DaemonManager instances * SF-002: Factory pattern implementation * * @example * ```typescript * // Create manager for main server * const factory = new DaemonManagerFactory(); * const mainManager = factory.create(); * * // Create manager for worktree #135 * const worktreeManager = factory.create(135); * ``` */ export declare class DaemonManagerFactory { private pidResolver; private dbResolver; constructor(); /** * Create a DaemonManager instance * @param issueNo - Optional issue number for worktree-specific manager * @returns IDaemonManager instance */ create(issueNo?: number): IDaemonManager; } /** * Get singleton factory instance */ export declare function getDaemonManagerFactory(): DaemonManagerFactory; /** * Reset singleton factory (for testing) */ export declare function resetDaemonManagerFactory(): void; //# sourceMappingURL=daemon-factory.d.ts.map