import { BaseWebSocketClient, BaseWebSocketClientOptions } from './base-ws-client.js';
import { AnthropicStreamCallbacks } from '../interfaces/websocket/callbacks.interfaces.js';
/**
 * Опции WebSocket клиента для рассуждений
 */
export interface ReasoningWebSocketClientOptions extends BaseWebSocketClientOptions {
    /** ID рассуждения */
    reasoningId?: string;
    /** Обработчики для событий Anthropic Stream */
    callbacks?: AnthropicStreamCallbacks;
}
/**
 * WebSocket клиент для пространства имен рассуждений
 */
export declare class ReasoningWebSocketClient extends BaseWebSocketClient {
    /** ID активного рассуждения */
    private activeReasoningId;
    /** Обработчики для событий Anthropic Stream */
    private callbacks;
    /** Обработчики событий мышления */
    private thinkingEventHandlers;
    /**
     * Создает новый WebSocket клиент для рассуждений
     * @param {string} baseURL Базовый URL API
     * @param {ReasoningWebSocketClientOptions} options Опции клиента
     */
    constructor(baseURL: string, options?: ReasoningWebSocketClientOptions);
    /**
     * Подключается к серверу WebSocket
     * @param {boolean} autoJoin Автоматически присоединиться к рассуждению
     * @returns {Promise<boolean>} Успешность подключения
     */
    connectToReasoning(autoJoin?: boolean): Promise<boolean>;
    /**
     * Присоединяется к сессии рассуждения
     * @param {string} reasoningId ID сессии рассуждения
     * @returns {Promise<boolean>} Успешность операции
     */
    joinReasoning(reasoningId: string): Promise<boolean>;
    /**
     * Запускает рассуждение
     * @param {string} reasoningId ID сессии рассуждения
     * @returns {Promise<boolean>} Успешность операции
     */
    startReasoning(reasoningId?: string): Promise<boolean>;
    /**
     * Создает новое рассуждение на сервере
     * @returns {Promise<string>} ID нового рассуждения
     */
    createNewReasoning(): Promise<string>;
    /**
     * Подключается к сессии thinking с расширенными возможностями
     * @param {string} [reasoningId="system"] Идентификатор рассуждения
     * @param {(data: any) => void} [thinkingHandler] Обработчик событий мышления
     * @returns {Promise<string>} Идентификатор сессии рассуждения
     */
    connectToThinkingSession(reasoningId?: string, thinkingHandler?: (data: any) => void): Promise<string>;
    /**
     * Настраивает обработчики событий для стрима от Anthropic
     */
    setupAnthropicStreamHandlers(): void;
    /**
     * Подписывается на события мышления
     * @param {string} reasoningId Идентификатор рассуждения
     * @param {Function} handler Обработчик событий мышления
     * @returns {void}
     */
    subscribeToThinking(reasoningId: string, handler: (data: any) => void): void;
    /**
     * Отписывается от событий мышления
     * @param {string} reasoningId Идентификатор рассуждения
     * @returns {void}
     */
    unsubscribeFromThinking(reasoningId: string): void;
    /**
     * Получает текущий ID активного рассуждения
     * @returns {string | null} ID активного рассуждения или null
     */
    getActiveReasoningId(): string | null;
    /**
     * Устанавливает ID активного рассуждения
     * @param {string} reasoningId ID рассуждения
     * @returns {boolean} Успешность установки
     */
    setActiveReasoningId(reasoningId: string): boolean;
}
//# sourceMappingURL=reasoning-ws-client.d.ts.map