/**
 * Модели данных для чат-API
 */
/**
 * Сообщение в чате
 */
export interface ChatMessage {
    /** Роль отправителя сообщения (system, user, assistant, function) */
    role: 'system' | 'user' | 'assistant' | 'function';
    /** Содержимое сообщения */
    content: string;
    /** Имя, если роль - function (опционально) */
    name?: string;
}
/**
 * Опции для запроса в чат
 */
export interface ChatOptions {
    /** Название модели (по умолчанию 'Claude') */
    model?: string;
    /** Температура генерации (0-1) */
    temperature?: number;
    /** Максимальное количество токенов в ответе */
    maxTokens?: number;
    /** Последовательности для остановки генерации */
    stopSequences?: string[];
    /** Список функций, доступных для вызова моделью */
    functions?: any[];
    /** Настройки вызова функций */
    functionCall?: 'auto' | 'none' | {
        name: string;
    };
    /** Активировать режим thinking (размышления) модели */
    thinking?: boolean;
    /** Регион API Anthropic (default: us-east-1) */
    region?: 'us-east-1' | 'eu-west-1' | 'ap-southeast-2';
    /** Системная инструкция (prompt) */
    systemPrompt?: string;
    /** ID сокета для WebSocket соединения */
    socketId?: string;
    /** Дополнительные опции модели */
    [key: string]: any;
}
/**
 * Содержимое сообщения в ответе
 */
export interface ChatResponseContent {
    /** Текст сообщения */
    content: string;
}
/**
 * Вариант ответа в чате
 */
export interface ChatResponseChoice {
    /** Сообщение от модели */
    message: ChatResponseContent;
    /** Причина завершения генерации */
    finish_reason: string;
    /** Ход размышлений модели (доступен, если был запрошен режим thinking) */
    thinking?: string;
    /** Криптографическая подпись блока thinking для верификации */
    thinking_signature?: string;
}
/**
 * Ответ модели на запрос в чате
 */
export interface ChatResponse {
    /** Варианты ответов */
    choices: ChatResponseChoice[];
}
/**
 * Чанк потоковой передачи ответа от модели
 */
export interface ChatStreamChunk {
    /** Текст чанка */
    text: string;
    /** Признак завершения потока */
    isComplete: boolean;
    /** Признак, что текущий чанк является частью размышлений модели */
    isThinking?: boolean;
    /** Полный текст размышлений (доступен только в финальном чанке) */
    thinkingContent?: string;
    /** Криптографическая подпись блока thinking (доступна только в финальном чанке) */
    thinkingSignature?: string;
}
/**
 * Опции для потоковой передачи
 */
export interface ChatStreamOptions extends ChatOptions {
    /** Обработчик получения каждого токена */
    onToken?: (token: string) => void;
    /** Обработчик получения полного ответа */
    onComplete?: (text: string) => void;
    /** Обработчик ошибок */
    onError?: (error: Error) => void;
    /** Токен авторизации для WebSocket соединения */
    authToken?: string;
    /** ID сессии для отслеживания контекста между запросами */
    sessionId?: string;
}
/**
 * Ответ на запрос инициализации WebSocket соединения
 */
export interface WebSocketConnectResponse {
    /** Статус операции */
    status: string;
    /** ID сокета для использования в запросах */
    socketId: string;
    /** URL для подключения к WebSocket серверу */
    url: string;
    /** Пространство имен WebSocket */
    namespace: string;
    /** Протокол WebSocket (ws или wss) */
    protocol: string;
    /** Инструкции для использования */
    instructions?: string;
}
/**
 * Ответ на запрос потоковой передачи с thinking
 */
export interface ThinkingStreamResponse {
    /** Статус операции */
    status: string;
    /** Сообщение */
    message: string;
    /** ID сокета для получения событий */
    socketId: string;
    /** Провайдер модели */
    provider: string;
    /** Модель */
    model: string;
    /** Включен ли режим thinking */
    thinking: boolean;
}
/**
 * Тип обработчика событий
 */
export type EventHandler = (eventName: string, eventData: any) => void;
//# sourceMappingURL=models.d.ts.map