/**
 * OwlCoda local tool execution runtime.
 *
 * Supports: Bash, Read, Write, Glob.
 * Safety: Bash requires confirmation for dangerous patterns, file write requires confirmation,
 * all operations have timeouts and output truncation.
 *
 * ─── Lifecycle status (issue #4, 2026-04-26) ────────────────────────────
 *
 *   STATUS: legacy / not reachable from production.
 *
 *   Production CLI binary route is `cli.ts → cli-core.ts → native/repl.ts`
 *   and `native/headless.ts`. Neither imports anything from this file.
 *   The only consumer of `executeToolUse` / `TOOL_DEFINITIONS` is
 *   `src/frontend/repl.ts`, which is itself not imported by any
 *   production entry point. See the import-boundary regression test in
 *   `tests/runtime-tools-boundary.test.ts` — that test will fail loudly
 *   if a future change wakes this path back up without going through the
 *   centralized policies.
 *
 *   The bash dangerous-pattern check below has been bridged to the
 *   centralized `classifyBashCommand()` in `src/native/bash-risk.ts`
 *   (issue #2). Even if a future caller revives this file, `bash` will
 *   inherit the same risk taxonomy as the native dispatcher.
 *
 *   New work should NOT add features here. Either implement in
 *   `src/native/tools/*` (production path) or document a follow-up that
 *   either retires this file or re-bridges it to the native dispatcher.
 */
export interface ToolDefinition {
    name: string;
    description: string;
    inputSchema: Record<string, unknown>;
}
export interface ToolResult {
    toolUseId: string;
    content: string;
    isError: boolean;
}
export type ApprovalCallback = (tool: string, detail: string) => Promise<boolean>;
export interface ToolExecutorConfig {
    /** Working directory for tool execution */
    cwd: string;
    /** Maximum execution time for bash commands (ms) */
    bashTimeoutMs: number;
    /** Maximum output length before truncation (chars) */
    maxOutputChars: number;
    /** Callback for approval before dangerous operations */
    approve: ApprovalCallback;
    /** Auto-approve all operations (non-interactive mode) */
    autoApprove: boolean;
}
/**
 * Check if a resolved absolute path is within the workspace (cwd).
 * Returns true if pathToCheck starts with cwd prefix.
 */
export declare function isWithinWorkspace(pathToCheck: string, cwd: string): boolean;
export declare const TOOL_DEFINITIONS: ToolDefinition[];
export declare const SUPPORTED_TOOLS: Set<string>;
/**
 * Execute a tool by name with the given input.
 */
export declare function executeTool(toolName: string, input: Record<string, unknown>, config?: Partial<ToolExecutorConfig>): Promise<{
    output: string;
    isError: boolean;
}>;
/**
 * Execute a tool_use block and return a tool_result block.
 */
export declare function executeToolUse(toolUse: {
    id: string;
    name: string;
    input: Record<string, unknown>;
}, config?: Partial<ToolExecutorConfig>): Promise<ToolResult>;
