/**
 * Crewly Agent API Client
 *
 * Lightweight HTTP client for calling the Crewly backend REST API.
 * Replaces the bash curl wrapper used by orchestrator skill scripts
 * with direct fetch() calls for in-process tool execution.
 *
 * @module services/agent/crewly-agent/api-client
 */
import { type ApiCallResult } from './types.js';
/**
 * HTTP client for the Crewly backend REST API.
 *
 * Each tool in the ToolRegistry uses this client to make API calls
 * instead of shelling out to bash scripts.
 *
 * @example
 * ```typescript
 * const client = new CrewlyApiClient('http://localhost:8787', 'crewly-orc');
 * const result = await client.get('/teams');
 * const result2 = await client.post('/terminal/agent-sam/deliver', { message: 'Hello' });
 * ```
 */
export declare class CrewlyApiClient {
    private baseUrl;
    private sessionName;
    private timeoutMs;
    /**
     * Create a new API client instance.
     *
     * @param baseUrl - Base URL for the Crewly API (e.g., 'http://localhost:8787')
     * @param sessionName - Agent session name for the X-Agent-Session header
     * @param timeoutMs - Request timeout in milliseconds
     */
    constructor(baseUrl?: string, sessionName?: string, timeoutMs?: number);
    /**
     * Make a GET request to the Crewly API.
     *
     * @param endpoint - API endpoint path (e.g., '/teams')
     * @returns API call result with parsed JSON data
     */
    get<T = unknown>(endpoint: string): Promise<ApiCallResult<T>>;
    /**
     * Make a POST request to the Crewly API.
     *
     * @param endpoint - API endpoint path (e.g., '/terminal/agent-sam/deliver')
     * @param body - Request body to send as JSON
     * @returns API call result with parsed JSON data
     */
    post<T = unknown>(endpoint: string, body: unknown): Promise<ApiCallResult<T>>;
    /**
     * Make a DELETE request to the Crewly API.
     *
     * @param endpoint - API endpoint path (e.g., '/schedule/check-123')
     * @returns API call result with parsed JSON data
     */
    delete<T = unknown>(endpoint: string): Promise<ApiCallResult<T>>;
    /**
     * Internal request method handling fetch, timeout, and error mapping.
     *
     * @param method - HTTP method
     * @param endpoint - API endpoint path
     * @param body - Optional request body
     * @returns Parsed API call result
     */
    private request;
}
//# sourceMappingURL=api-client.d.ts.map