import type { ChatMessage } from '../../../core/types.js';
import type { ACPAgentConfig, ACPManifest } from './types.js';
/**
 * Build auth headers from ACP config. Extracted as a shared helper
 * so both ACPClient and CLI config validation use the same logic.
 */
export declare function buildAuthHeaders(config: {
    auth?: ACPAgentConfig['auth'];
}): Record<string, string> | undefined;
export declare class ACPClient {
    private baseUrl;
    private authHeaders?;
    private manifest?;
    constructor(config: ACPAgentConfig);
    /** Fetch and cache the Agent Manifest (GET /agent/card) */
    fetchManifest(): Promise<ACPManifest>;
    /** Check if the agent endpoint is reachable */
    healthCheck(): Promise<boolean>;
    /**
     * Send prompt and stream response chunks via SSE.
     * Parses Server-Sent Events per the W3C spec:
     * - Multiple `data:` lines for a single event are joined with newlines
     * - Events separated by blank lines
     *
     * `sessionId` is forwarded as `session_id` in the request body so the
     * remote agent can persist context across turns (P2-C).
     */
    streamPrompt(prompt: string, history?: ChatMessage[], sessionId?: string): AsyncGenerator<string>;
    /** Send prompt and wait for complete response (non-streaming fallback) */
    sendPromptSync(prompt: string, history?: ChatMessage[], sessionId?: string): Promise<string>;
}
//# sourceMappingURL=acp-client.d.ts.map