/**
 * @fileoverview OrdoJS CLI - Process Manager
 *
 * Handles process lifecycle management, cleanup, and zombie prevention.
 */
import { ChildProcess } from 'child_process';
/**
 * ProcessManager class for managing child processes
 */
export declare class ProcessManager {
    private processes;
    private isShuttingDown;
    private exitHandlerRegistered;
    /**
     * Create a new ProcessManager instance
     */
    constructor();
    /**
     * Register handlers for process exit events
     */
    private registerExitHandlers;
    /**
     * Start a new child process
     *
     * @param id - Unique identifier for the process
     * @param command - Command to execute
     * @param args - Command arguments
     * @param options - Spawn options
     * @returns The created child process
     */
    startProcess(id: string, command: string, args?: string[], options?: Record<string, any>): ChildProcess;
    /**
     * Stop a specific process
     *
     * @param id - Process identifier
     * @param signal - Signal to send (default: SIGTERM)
     * @returns Promise that resolves when the process has exited
     */
    stopProcess(id: string, signal?: NodeJS.Signals): Promise<void>;
    /**
     * Check if a process is running
     *
     * @param id - Process identifier
     * @returns True if the process is running
     */
    isProcessRunning(id: string): boolean;
    /**
     * Get all running processes
     *
     * @returns Map of process IDs to child processes
     */
    getRunningProcesses(): Map<string, ChildProcess>;
    /**
     * Clean up all managed processes
     */
    cleanup(): Promise<void>;
    /**
     * Shutdown the process manager and all managed processes
     *
     * @param reason - Reason for shutdown
     */
    shutdown(reason: string): Promise<void>;
}
//# sourceMappingURL=process-manager.d.ts.map