import type { CallDiagnostics, ServerMode, ToolBase, ToolEntry } from '../types.js';
/**
 * Returns the canonical full name for a tool.
 * For actor tools this is actorFullName (e.g. "apify/rag-web-browser"),
 * for all others it's the tool name.
 */
export declare function getToolFullName(tool: ToolEntry): string;
/**
 * Extract stable Actor ID for telemetry.
 * Available for actor and actor-mcp tools; undefined for internal tools.
 */
export declare function extractActorId(tool: ToolEntry): string | undefined;
/**
 * Build actor identification fields for failure telemetry.
 */
export declare function buildActorFields(actorName?: string, actorId?: string): Pick<CallDiagnostics, 'actor_name' | 'actor_id'>;
/**
 * Extract actor name for telemetry from the tool entry or call-actor args.
 * For actor tools, read from the tool entry. For call-actor, parse from the `actor` arg.
 * Returns undefined for other internal tools or when the arg is missing/invalid.
 */
export declare function extractActorName(tool: ToolEntry, args?: Record<string, unknown>): string | undefined;
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