/**
 * Rust Tool Connection Pool
 *
 * Maintains persistent Rust processes for faster tool calls.
 * First call: ~50-100ms (spawn overhead)
 * Subsequent calls: ~5-10ms (10x faster!)
 */
export declare class RustToolPool {
    private processes;
    private maxSize;
    private idleTimeout;
    private cleanupInterval;
    private shuttingDown;
    constructor(maxSize?: number);
    /**
     * Call a Rust tool using pooled connection
     */
    call(name: string, args: Record<string, unknown>): Promise<string>;
    /**
     * Get an available process from pool
     */
    private getAvailable;
    /**
     * Wait for a process to become available
     */
    private waitForAvailable;
    /**
     * Create a new pooled process
     */
    private createProcess;
    /**
     * Send a request to a pooled process
     */
    private sendRequest;
    /**
     * Release a process back to the pool
     */
    private release;
    /**
     * Start cleanup timer for idle processes
     */
    private startCleanupTimer;
    /**
     * Shutdown the pool
     */
    shutdown(): Promise<void>;
    /**
     * Get pool statistics
     */
    getStats(): {
        total: number;
        busy: number;
        idle: number;
    };
}
/**
 * Get or create the global pool
 */
export declare function getRustToolPool(): RustToolPool;
/**
 * Shutdown the global pool
 */
export declare function shutdownRustToolPool(): Promise<void>;
