/**
 * Tool Presets
 *
 * Pre-configured tool combinations for common use cases.
 */
import type { Tool, ToolPolicy } from "@clinebot/shared";
import type { CreateDefaultToolsOptions, DefaultToolsConfig } from "./types.js";
/**
 * Preset configurations for common use cases
 */
export declare const ToolPresets: {
    /**
     * Browser-based tools (no shell access, no web fetch)
     */
    readonly browser: {
        readonly enableReadFiles: false;
        readonly enableSearch: false;
        readonly enableBash: false;
        readonly enableWebFetch: false;
        readonly enableApplyPatch: false;
        readonly enableEditor: false;
        readonly enableSkills: true;
        readonly enableAskQuestion: true;
    };
    /**
     * Search-focused tools (read_files + search_codebase)
     * Good for code exploration and analysis agents
     */
    readonly search: {
        readonly enableReadFiles: true;
        readonly enableSearch: true;
        readonly enableBash: false;
        readonly enableWebFetch: false;
        readonly enableApplyPatch: false;
        readonly enableEditor: false;
        readonly enableSkills: false;
        readonly enableAskQuestion: false;
    };
    /**
     * Full development tools (all tools enabled) - Act mode
     * Good for coding assistants and task automation
     */
    readonly development: {
        readonly enableReadFiles: true;
        readonly enableSearch: true;
        readonly enableBash: true;
        readonly enableWebFetch: true;
        readonly enableApplyPatch: false;
        readonly enableEditor: true;
        readonly enableSkills: true;
        readonly enableAskQuestion: true;
    };
    /**
     * Read-only tools (no shell access) - Plan mode
     * Good for analysis and documentation agents
     */
    readonly readonly: {
        readonly enableReadFiles: true;
        readonly enableSearch: true;
        readonly enableBash: true;
        readonly enableWebFetch: true;
        readonly enableApplyPatch: false;
        readonly enableEditor: false;
        readonly enableSkills: true;
        readonly enableAskQuestion: true;
    };
    /**
     * Minimal tools (file reading only)
     * Good for focused single-file tasks
     */
    readonly minimal: {
        readonly enableReadFiles: false;
        readonly enableSearch: false;
        readonly enableBash: false;
        readonly enableWebFetch: false;
        readonly enableApplyPatch: false;
        readonly enableEditor: false;
        readonly enableSkills: false;
        readonly enableAskQuestion: true;
    };
    /**
     * YOLO mode (automation-focused tools + no approval required)
     * Good for trusted local automation workflows.
     */
    readonly yolo: {
        readonly enableReadFiles: true;
        readonly enableSearch: true;
        readonly enableBash: true;
        readonly enableWebFetch: true;
        readonly enableApplyPatch: false;
        readonly enableEditor: true;
        readonly enableSkills: true;
        readonly enableAskQuestion: false;
    };
};
/**
 * Type for preset names
 */
export type ToolPresetName = keyof typeof ToolPresets;
/**
 * Tool policy preset names
 */
export type ToolPolicyPresetName = "default" | "yolo";
/**
 * Build tool policies for a preset.
 * `yolo` guarantees tool policies are enabled and auto-approved.
 */
export declare function createToolPoliciesWithPreset(presetName: ToolPolicyPresetName): Record<string, ToolPolicy>;
/**
 * Create default tools using a preset configuration
 *
 * @example
 * ```typescript
 * const tools = createDefaultToolsWithPreset("readonly", {
 *   executors: {
 *     readFile: async ({ path }) => fs.readFile(path, "utf-8"),
 *     search: async (query, cwd) => searchFiles(query, cwd),
 *     webFetch: async (url, prompt) => fetchAndAnalyze(url, prompt),
 *   },
 *   cwd: "/path/to/project",
 * })
 * ```
 */
export declare function createDefaultToolsWithPreset(presetName: ToolPresetName, options: Omit<CreateDefaultToolsOptions, keyof DefaultToolsConfig> & Partial<DefaultToolsConfig>): Tool[];
