import { ClientTransportInterface } from '../client-transport-interface';
import { Tool } from '../../shared/tool';
import { ProviderUnion } from '../../shared/provider';
/**
 * HTTP transport implementation for UTCP clients
 */
export declare class HttpClientTransport implements ClientTransportInterface {
    private _oauthTokens;
    private _logger;
    /**
     * Create a new HTTP transport
     * @param logger Optional logger function
     */
    constructor(logger?: (message: string, error?: boolean) => void);
    /**
     * Discover tools from a REST API provider
     * @param manual_provider Details of the REST provider
     * @returns List of tool declarations, or empty array if discovery fails
     */
    register_tool_provider(manual_provider: ProviderUnion): Promise<Tool[]>;
    /**
     * Deregistering a tool provider is a no-op for the stateless HTTP transport
     * @param manual_provider The provider to deregister
     */
    deregister_tool_provider(manual_provider: ProviderUnion): Promise<void>;
    /**
     * Calls a tool on an HTTP provider
     * @param tool_name The name of the tool to call
     * @param args Arguments to pass to the tool
     * @param tool_provider The provider to use
     * @returns The result of the tool call
     */
    call_tool(tool_name: string, args: Record<string, any>, tool_provider: ProviderUnion): Promise<any>;
    /**
     * Handles OAuth2 client credentials flow, trying both body and auth header methods
     * @param authDetails The OAuth2 authentication details
     * @returns The access token
     */
    private _handleOAuth2;
    private _buildUrlWithPathParams;
}
