/**
 * CLI Executor Tool - Unified execution for external CLI tools
 * Supports Gemini, Qwen, and Codex with streaming output
 */
import type { ToolSchema, ToolResult } from '../types/tool.js';
import { checkToolAvailability, clearToolCache, type ToolAvailability } from './cli-executor-utils.js';
import type { ExecutionOutput } from './cli-executor-state.js';
import { type CliOutputUnit } from './cli-output-converter.js';
/**
 * Kill the current running CLI child process
 * Called when parent process receives SIGINT/SIGTERM
 */
export declare function killCurrentCliProcess(): boolean;
/**
 * Parse .env file content into key-value pairs
 * Supports: KEY=value, KEY="value", KEY='value', comments (#), empty lines
 */
declare function parseEnvFile(content: string): Record<string, string>;
/**
 * Load environment variables from .env file
 * Supports ~ for home directory expansion
 */
declare function loadEnvFile(envFilePath: string): Record<string, string>;
/**
 * Execute CLI tool with streaming output
 */
declare function executeCliTool(params: Record<string, unknown>, onOutput?: ((unit: CliOutputUnit) => void) | null): Promise<ExecutionOutput>;
export declare const schema: ToolSchema;
export declare function handler(params: Record<string, unknown>): Promise<ToolResult<ExecutionOutput>>;
export { batchDeleteExecutionsAsync, deleteExecution, deleteExecutionAsync, getConversationDetail, getConversationDetailWithNativeInfo, getExecutionDetail, getExecutionHistory, getExecutionHistoryAsync } from './cli-executor-state.js';
/**
 * Get status of all CLI tools
 * Dynamically reads tools from config file
 * Handles different tool types:
 * - builtin: Check system PATH availability
 * - cli-wrapper: Check CLI Settings configuration exists
 * - api-endpoint: Check LiteLLM endpoint configuration exists
 */
export declare function getCliToolsStatus(): Promise<Record<string, ToolAvailability>>;
/**
 * Set the base directory for config operations
 */
export declare function setConfigBaseDir(dir: string): void;
/**
 * Install a CLI tool via npm
 */
export declare function installCliTool(tool: string): Promise<{
    success: boolean;
    error?: string;
}>;
/**
 * Uninstall a CLI tool via npm
 */
export declare function uninstallCliTool(tool: string): Promise<{
    success: boolean;
    error?: string;
}>;
/**
 * Enable a CLI tool (updates config file)
 */
export declare function enableCliTool(tool: string): {
    success: boolean;
};
/**
 * Disable a CLI tool (updates config file)
 */
export declare function disableCliTool(tool: string): {
    success: boolean;
};
/**
 * Check if a tool is enabled (reads from config file)
 */
export declare function isToolEnabled(tool: string): boolean;
/**
 * Get full status of all CLI tools including enabled state
 */
export declare function getCliToolsFullStatus(): Promise<Record<string, {
    available: boolean;
    enabled: boolean;
    path: string | null;
    packageName: string;
}>>;
/**
 * Latest execution + native session history functions are re-exported from state.
 */
export { getEnrichedConversation, getFormattedNativeConversation, getHistoryWithNativeInfo, getLatestExecution, getNativeConversationPairs, getNativeSessionContent } from './cli-executor-state.js';
export type { ExecutionCategory, ConversationRecord, ConversationTurn, ExecutionRecord } from './cli-executor-state.js';
export type { PromptFormat, ConcatOptions } from './cli-prompt-builder.js';
export { executeCliTool, checkToolAvailability, clearToolCache };
export { parseEnvFile, loadEnvFile };
export { PromptConcatenator, createPromptConcatenator, buildPrompt, buildMultiTurnPrompt } from './cli-prompt-builder.js';
export declare const cliExecutorTool: {
    schema: ToolSchema;
    execute: typeof executeCliTool;
};
//# sourceMappingURL=cli-executor-core.d.ts.map