import { type Static } from '@sinclair/typebox';
import type { ToolDefinition } from '../../core/core-types.js';
import { type TruncationResult } from '../../utils/truncate.js';
import type { BashOperations } from './bash-types.js';
declare const bashSchema: import("@sinclair/typebox").TObject<{
    description: import("@sinclair/typebox").TString;
    command: import("@sinclair/typebox").TString;
    timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    connections: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
}>;
export type BashToolInput = Static<typeof bashSchema>;
export interface BashToolDetails {
    exitCode?: number;
    cancelled?: boolean;
    timedOut?: boolean;
    truncation?: TruncationResult;
    fullOutputPath?: string;
}
export type { BashOperations } from './bash-types.js';
/**
 * Translate a non-zero exit code into a human-readable hint appended to tool output.
 * Returns `undefined` when no useful interpretation exists.
 */
export declare function interpretExitCode(exitCode: number, command: string): string | undefined;
/**
 * Returns `true` when a non-zero exit code represents an expected/informational
 * result rather than an error. These exits resolve (not reject) so the agent
 * loop does not mark them as `isError = true` and they receive the full 50K
 * char output limit instead of the 500 char error limit.
 */
export declare function isInformationalExitCode(exitCode: number, command: string): boolean;
export interface BashToolOptions {
    /** Custom operations for command execution. Default: local shell */
    operations?: BashOperations;
    /** Custom shell path from the current runtime settings. */
    shellPath?: string;
    /** Command prefix prepended to every command (e.g., "shopt -s expand_aliases" for alias support) */
    commandPrefix?: string;
    sandboxActive?: boolean;
    /** Called when the agent passes `connections` in bash params. Returns extra env vars to inject into that subprocess only. */
    resolveConnectionEnv?: (connectionNames: string[]) => Record<string, string>;
}
export declare function createBashTool(cwd: string, options?: BashToolOptions): ToolDefinition<typeof bashSchema>;
//# sourceMappingURL=bash.d.ts.map