import type { ServerMode, ToolBase, ToolEntry } from '../types.js';
type ToolPublicFieldOptions = {
    mode?: ServerMode;
    filterWidgetMeta?: boolean;
};
/**
 * Returns a public version of the tool containing only fields that should be exposed publicly.
 * Used for the tools list request.
 */
export declare function getToolPublicFieldOnly(tool: ToolBase, options?: ToolPublicFieldOptions): {
    name: string;
    title: string | undefined;
    description: string | undefined;
    inputSchema: {
        [x: string]: unknown;
        type: "object";
        properties?: Record<string, object> | undefined;
        required?: string[] | undefined;
    };
    outputSchema: {
        [x: string]: unknown;
        type: "object";
        properties?: Record<string, object> | undefined;
        required?: string[] | undefined;
    } | undefined;
    annotations: {
        title?: string | undefined;
        readOnlyHint?: boolean | undefined;
        destructiveHint?: boolean | undefined;
        idempotentHint?: boolean | undefined;
        openWorldHint?: boolean | undefined;
    } | undefined;
    icons: {
        src: string;
        mimeType?: string | undefined;
        sizes?: string[] | undefined;
        theme?: "light" | "dark" | undefined;
    }[] | undefined;
    execution: {
        taskSupport?: "optional" | "required" | "forbidden" | undefined;
    } | undefined;
    _meta: Record<string, unknown> | undefined;
};
/**
 * Creates a deep copy of a tool entry, preserving functions like ajvValidate and call
 * while cloning all other properties to avoid shared state mutations.
 */
export declare function cloneToolEntry(toolEntry: ToolEntry): ToolEntry;
/**
 * Applies Skyfire augmentation to a tool entry.
 * Clones the tool and, if eligible, appends Skyfire instructions to the description
 * and adds a `skyfire-pay-id` property to the input schema.
 *
 * Returns the (possibly augmented) clone if the tool is eligible,
 * or the original tool reference if it is not eligible.
 * Augmentation is idempotent — calling this on an already-augmented clone is safe.
 */
export declare function applySkyfireAugmentation(tool: ToolEntry): ToolEntry;
export {};
//# sourceMappingURL=tools.d.ts.map