/**
 * Опции для инициализации SDK
 */
export interface CodeSolverSDKOptions {
    /**
     * Базовый URL API
     */
    baseURL: string;
    /**
     * Таймаут для HTTP запросов в миллисекундах (по умолчанию 30000)
     */
    timeout?: number;
    /**
     * API ключ (если требуется)
     */
    apiKey?: string;
    /**
     * Режим работы: 'auto' - автоопределение, 'browser' - браузер, 'node' - Node.js
     */
    mode?: 'auto' | 'browser' | 'node';
    /**
     * Настройки HTTP соединения
     */
    http?: {
        /** Таймаут запросов в миллисекундах */
        timeout?: number;
        /** Количество попыток при ошибках */
        retries?: number;
        /** Задержка между попытками */
        retryDelay?: number;
    };
    /**
     * Пользовательские HTTP заголовки
     */
    headers?: Record<string, string>;
    /**
     * 🔑 НОВОЕ в v6.1.4: Динамическое получение auth токена
     * Функция вызывается перед каждым HTTP запросом для получения свежего токена
     * Полезно для автоматического обновления истекших access tokens
     *
     * @returns Токен или null если токена нет
     * @example
     * ```typescript
     * const sdk = new CodeSolverSDK({
     *   baseURL: 'https://api.example.com',
     *   getAuthToken: async () => {
     *     // Обновляем токен если истек
     *     const token = await authManager.getValidToken();
     *     return token;
     *   }
     * });
     * ```
     */
    getAuthToken?: () => Promise<string | null> | string | null;
    /**
     * Опции для HTTPS агента (для Node.js)
     * В браузере не используется
     */
    httpsAgent?: any;
    /**
     * Режим отладки SDK
     *
     * Варианты значений:
     * - true - включает базовое логирование (совместимость с v3.1.5)
     * - 'verbose' - включает подробное логирование (совместимость с v3.1.5)
     * - false/undefined - отключает логирование (по умолчанию)
     *
     * НОВОЕ в v3.1.6+:
     * - 'silent' - полностью отключает логирование (включая errors)
     * - 'error' - только ошибки
     * - 'warn' - предупреждения и ошибки
     * - 'info' - базовая информация, предупреждения и ошибки
     * - 'debug' - подробная отладочная информация (аналог 'verbose')
     */
    debug?: boolean | 'verbose' | 'silent' | 'error' | 'warn' | 'info' | 'debug';
    /**
     * Опции для провайдеров моделей
     */
    providers?: {
        /**
         * Опции для Anthropic
         */
        anthropic?: {
            /**
             * Регион API (default: us-east-1)
             */
            region?: 'us-east-1' | 'eu-west-1' | 'ap-southeast-2';
            /**
             * API ключ для Anthropic
             */
            apiKey?: string;
            /**
             * Время ожидания ответа в миллисекундах
             */
            timeout?: number;
        };
        /**
         * Опции для других провайдеров
         */
        [key: string]: any;
    };
    /**
     * НОВОЕ в v3.1.6: Настройки логирования потоков
     * Контролирует какие события стриминга логировать
     */
    streamLogging?: {
        /** Логировать SSE события (по умолчанию: false) */
        sseEvents?: boolean;
        /** Логировать chunk'и потока (по умолчанию: false) */
        streamChunks?: boolean;
        /** Логировать onEvent callbacks (по умолчанию: false) */
        eventCallbacks?: boolean;
        /** Логировать только важные события (start, stop, errors) */
        importantOnly?: boolean;
    };
    /**
     * 🔄 НОВОЕ в v5.1.0: Delta-Chunking конфигурация
     * Cursor-подобная инкрементальная синхронизация проектов
     */
    deltaChunking?: {
        /** Включение delta-chunking функциональности */
        enabled: boolean;
        /** Настройки шифрования */
        encryption?: {
            /** Включить шифрование чанков */
            enabled: boolean;
            /** 32-символьный ключ для AES-256 */
            key: string;
        };
        /** Настройки разбиения на чанки */
        chunking?: {
            /** Максимальное количество символов в чанке (рекомендуется: 2000, ~500 токенов) */
            maxChars?: number;
            /** Минимальное количество символов в чанке (рекомендуется: 500, ~130 токенов) */
            minChars?: number;
            /** Использовать tree-sitter парсер (в разработке) */
            useTreeSitter?: boolean;
            /** Сохранять контекст между чанками */
            preserveContext?: boolean;
        };
        /** Настройки file watching для автосинхронизации */
        fileWatching?: {
            /** Включить автоматическое наблюдение за изменениями */
            enabled: boolean;
            /** Интервал проверки изменений в мс (по умолчанию: 1000) */
            pollInterval?: number;
            /** Паттерны для игнорирования файлов */
            ignorePatterns?: string[];
        };
    };
    /**
     * 🔌 НОВОЕ в v5.1.4: WebSocket конфигурация
     * Real-time уведомления о статусе проектов (БЕЗ fallback'ов)
     */
    webSocket?: {
        /** Включить WebSocket push-уведомления (по умолчанию: true) */
        enabled?: boolean;
        /** Таймаут подключения в миллисекундах (по умолчанию: 10000) */
        connectionTimeout?: number;
        /** Максимальное количество попыток переподключения (по умолчанию: 3) */
        maxRetries?: number;
        /** Задержка между попытками переподключения в мс (по умолчанию: 2000) */
        retryDelay?: number;
        /** Включить отладочные логи WebSocket (по умолчанию: false) */
        debug?: boolean;
        /**
         * 🔄 НОВОЕ в v6.3.0: Полностью отключить auto-reconnect в SDK
         * Рекомендуется при использовании собственного координатора reconnect на клиенте
         * (по умолчанию: false)
         */
        disableAutoReconnect?: boolean;
        /**
         * 📝 НОВОЕ в v6.3.0: Уровень логирования для WebSocket
         * - 'silent' - полностью отключает логирование
         * - 'error' - только ошибки (по умолчанию)
         * - 'warn' - предупреждения и ошибки
         * - 'info' - информация, предупреждения и ошибки
         * - 'debug' - полная отладочная информация
         */
        logLevel?: 'silent' | 'error' | 'warn' | 'info' | 'debug';
    };
}
//# sourceMappingURL=sdk-options.d.ts.map