import type { MarketrixConfig, SendMessageRequest, SendMessageResponse } from '../types';
export declare class MarketrixApiService {
    private config;
    constructor(config: MarketrixConfig);
    /**
     * Get the current chat ID (does not create if missing)
     */
    getChatId(): string | null;
    /**
     * Get or create chat ID using centralized manager
     * This ensures only one chat ID is created even with concurrent calls
     */
    getOrCreateChatId(): Promise<string>;
    /**
     * Get user_id from various sources (config, localStorage, sessionStorage)
     */
    private getUserId;
    /**
     * Log widget question to action_log
     */
    logWidgetQuestion(question: string, mode: string): Promise<void>;
    /**
     * Send a message via the typed stream (fire-and-forget).
     * The actual response arrives asynchronously as a chat/response stream event.
     */
    sendMessage(request: SendMessageRequest): Promise<SendMessageResponse>;
    /**
     * Check agent availability - simplified implementation
     * Since there's no dedicated endpoint, we'll assume agent is available
     * if we have a chat ID (does not create one if missing)
     */
    checkAgentAvailability(): Promise<boolean>;
    /**
     * Get agent information - simplified implementation
     * Since there's no dedicated endpoint, return basic info
     */
    getAgentInfo(): Promise<{
        available: boolean;
        status: string;
    }>;
    /**
     * Stop a running task via the stream
     */
    stopTask(taskId?: string): Promise<{
        status: string;
        message: string;
    }>;
    /**
     * Update configuration
     */
    updateConfig(newConfig: Partial<MarketrixConfig>): void;
}
export default MarketrixApiService;
//# sourceMappingURL=ApiService.d.ts.map