/**
 * OwlCoda Native Config Tool
 *
 * Get or set runtime configuration settings.
 * Omitting `value` reads the current value; providing `value` sets it.
 *
 * Upstream parity notes:
 * - Upstream ConfigTool supports ~20 settings with type coercion
 * - Validates enum options, writes to global/project config
 * - Our version: reads from OwlCoda config + environment
 */
import type { ConfigInput, NativeToolDef } from './types.js';
export interface ConfigToolDeps {
    /**
     * Live getter/setter for the REPL's `autoApprove` flag. Wired by
     * ink-repl.tsx so an autonomous flow can flip yolo without going
     * through the TUI slash surface — hostile-QA against 0.13.38 hit the
     * "I can read the rail but I can't toggle yolo from a tool call" wall
     * and had to skip group 9 entirely. Optional: when not wired (e.g.
     * headless, tests), the `autoApprove` setting reports read-only.
     */
    autoApprove?: {
        get: () => boolean;
        set: (v: boolean) => void;
    };
    /**
     * Live getter/setter for `autoDeny`. When on, every prompt that
     * would normally fire auto-resolves to "deny" instead of waiting on
     * a human keypress. Mostly a QA aid: lets autonomous flows verify
     * the safety gate is actually firing (the tool result will be
     * "Tool execution denied by user." rather than silent execution).
     */
    autoDeny?: {
        get: () => boolean;
        set: (v: boolean) => void;
    };
}
export declare function createConfigTool(deps?: ConfigToolDeps): NativeToolDef<ConfigInput>;
