/**
 * Agent Validator Service
 *
 * Infrastructure implementation of the IAgentValidator port.
 * Checks if AI agent binaries are available on the system by
 * executing `<binary> --version` via subprocess.
 *
 * Uses constructor dependency injection for the command executor
 * to enable testability without mocking node:child_process directly.
 */
import type { AgentType } from '../../../../domain/generated/output.js';
import type { IAgentValidator, AgentValidationResult } from '../../../../application/ports/output/agents/agent-validator.interface.js';
/**
 * Type for the command executor dependency.
 * Matches the promisified signature of child_process.execFile.
 * Injected via constructor to avoid direct node module mocking in tests.
 */
export type ExecFunction = (file: string, args: string[]) => Promise<{
    stdout: string;
    stderr: string;
}>;
/**
 * Service that validates agent tool availability on the system.
 *
 * Checks if the agent binary exists and is executable by running
 * `<binary> --version` and parsing the output.
 */
export declare class AgentValidatorService implements IAgentValidator {
    private readonly execFn;
    /**
     * @param execFn - Command executor function (injectable for testing).
     *   Uses execFile semantics (no shell) to prevent command injection.
     */
    constructor(execFn: ExecFunction);
    /**
     * Check if the specified agent tool is available on the system.
     *
     * @param agentType - The agent type to check
     * @returns Validation result with availability status and version
     */
    isAvailable(agentType: AgentType): Promise<AgentValidationResult>;
}
//# sourceMappingURL=agent-validator.service.d.ts.map