/**
 * 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 { 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<number>;
    /**
     * Stop the daemon process
     * @param force - Use SIGKILL instead of SIGTERM
     * @returns true if stopped successfully
     */
    stop(force?: boolean): Promise<boolean>;
    /**
     * Get daemon status
     * @returns Status object or null if no PID file
     */
    getStatus(): Promise<DaemonStatus | null>;
    /**
     * Check if daemon is running
     * @returns true if running
     */
    isRunning(): Promise<boolean>;
}
/**
 * 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<number>;
    stop(force?: boolean): Promise<boolean>;
    getStatus(): Promise<DaemonStatus | null>;
    isRunning(): Promise<boolean>;
    /**
     * 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