///
import { EventEmitter } from 'node:events';
/**
* BinaryManager handles communication with the native capture binary
* Manages the child process lifecycle, health checks, and auto-restart
*/
export declare class BinaryManager extends EventEmitter {
private process;
private pendingCommands;
private isDev;
private restartOnError;
private remainingRestarts;
private errorBuffer;
private unexpectedShutdown;
private healthCheckInterval;
private lastHealthCheck;
private installer;
private initConfig;
constructor(options?: {
dev?: boolean;
restartOnError?: boolean;
});
/**
* Get the binary path and arguments
*/
private getBinaryCommand;
/**
* Append an error to the circular buffer
*/
private appendError;
/**
* Flush all pending commands with an error
*/
private flushPendingCommands;
/**
* Handle a message from the binary
*/
private handleMessage;
/**
* Start health checks
*/
private startHealthCheck;
/**
* Stop health checks
*/
private stopHealthCheck;
/**
* Start the binary process
*/
start(config?: Record): Promise;
/**
* Send a command to the binary
*/
sendCommand(command: string, params?: Record): Promise;
/**
* Gracefully stop the binary
*/
stop(): Promise;
/**
* Immediately kill the binary process
*/
kill(): void;
/**
* Check if the binary is running
*/
isRunning(): boolean;
}