/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { Config } from '../config/config.js';
import { BaseDeclarativeTool, type ToolInvocation, type ToolResult } from './tools.js';
import type { MessageBus } from '../confirmation-bus/message-bus.js';
export declare const OUTPUT_UPDATE_INTERVAL_MS = 1000;
export interface ShellToolParams {
    /**
     * The shell command to execute
     */
    command: string;
    /**
     * Optional description of what this command does, used for confirmation prompts
     */
    description?: string;
    /**
     * Optional directory to execute the command in, relative to the target directory
     */
    directory?: string;
    /**
     * Optional number of lines to show from the beginning of output
     */
    head_lines?: number;
    /**
     * Optional number of lines to show from the end of output
     */
    tail_lines?: number;
    /**
     * Optional grep pattern to filter output lines
     */
    grep_pattern?: string;
    /**
     * Optional grep flags (e.g., -i for case-insensitive, -v for inverted)
     */
    grep_flags?: string[];
}
export declare class ShellTool extends BaseDeclarativeTool<ShellToolParams, ToolResult> {
    private readonly config;
    static Name: string;
    private allowlist;
    constructor(config: Config, messageBus?: MessageBus);
    protected validateToolParamValues(params: ShellToolParams): string | null;
    protected createInvocation(params: ShellToolParams, messageBus?: MessageBus): ToolInvocation<ShellToolParams, ToolResult>;
}
