import type { Tool } from "ai";
/**
 * Tool profiling configuration that can be optionally provided by tools
 */
export interface ToolProfilingConfig {
    /** Extract display name from parameters for better trace visibility */
    extractDisplayName?: (parameters: unknown) => string;
    /** Extract metadata from parameters for trace args */
    extractMetadata?: (parameters: unknown) => Record<string, unknown>;
}
/**
 * Wraps a tool to add performance profiling
 */
export declare function profileTool<TParameters, TResult>(toolName: string, tool: Tool<TParameters, TResult>, config?: ToolProfilingConfig): Tool<TParameters, TResult>;
/**
 * Profile debug operations
 */
export declare class DebugProfiler {
    private static getTrack;
    /**
     * Profile typecheck operation
     */
    static profileTypecheck<T>(fn: () => Promise<T>): Promise<T>;
    /**
     * Profile lint operation
     */
    static profileLint<T>(fn: () => Promise<T>): Promise<T>;
    /**
     * Profile error collection
     */
    static profileErrorCollection<T>(fn: () => T): T;
}
//# sourceMappingURL=tool-profiler.d.ts.map