import type { AnyKoiTool } from "./pi-tools.types.js";
type RequiredParamGroup = {
    keys: readonly string[];
    allowEmpty?: boolean;
    label?: string;
};
export declare const CLAUDE_PARAM_GROUPS: {
    readonly read: readonly [{
        readonly keys: readonly ["path", "file_path"];
        readonly label: "path (path or file_path)";
    }];
    readonly write: readonly [{
        readonly keys: readonly ["path", "file_path"];
        readonly label: "path (path or file_path)";
    }];
    readonly edit: readonly [{
        readonly keys: readonly ["path", "file_path"];
        readonly label: "path (path or file_path)";
    }, {
        readonly keys: readonly ["oldText", "old_string"];
        readonly label: "oldText (oldText or old_string)";
    }, {
        readonly keys: readonly ["newText", "new_string"];
        readonly label: "newText (newText or new_string)";
    }];
};
export declare function normalizeToolParams(params: unknown): Record<string, unknown> | undefined;
export declare function patchToolSchemaForClaudeCompatibility(tool: AnyKoiTool): AnyKoiTool;
export declare function assertRequiredParams(record: Record<string, unknown> | undefined, groups: readonly RequiredParamGroup[], toolName: string): void;
export declare function wrapToolParamNormalization(tool: AnyKoiTool, requiredParamGroups?: readonly RequiredParamGroup[]): AnyKoiTool;
export declare function createSandboxedReadTool(root: string): AnyKoiTool;
export declare function createSandboxedWriteTool(root: string): AnyKoiTool;
export declare function createSandboxedEditTool(root: string): AnyKoiTool;
export declare function createSKYKOIReadTool(base: AnyKoiTool): AnyKoiTool;
export {};
