solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
150 lines • 6.76 kB
TypeScript
import { HttpClient } from '../utils/http-client.js';
import { Project, IndexingResponse, FileIndexResponse, ProjectOptions, ProjectUpdateData } from '../types/index.js';
/**
* Константы для API путей
*/
export declare enum ApiEndpoints {
PROJECTS = "/api/v1/projects",
PROJECT = "/api/v1/projects/:id",
PROJECT_INDEXING_STATUS = "/api/v1/projects/:id/indexing_status",
PROJECT_CANCEL_INDEXING = "/api/v1/projects/:id/cancel_indexing",
PROJECT_CLEAR_ERROR = "/api/v1/projects/:id/clear_error"
}
/**
* API для работы с проектами
*/
export declare class ProjectsApi {
/** HTTP клиент */
private readonly httpClient;
/** WebSocket клиент */
private wsClient;
/** Родительский SDK */
private parentSdk;
/**
* Создает новый экземпляр API для работы с проектами
* @param {HttpClient} httpClient HTTP клиент
*/
constructor(httpClient: HttpClient);
/**
* Проверяет валидность идентификатора проекта
* @param {string} projectId ID проекта
* @throws {Error} Если ID проекта не валиден
*/
private validateProjectId;
/**
* Получает список всех проектов
* @returns {Promise<Project[]>} Список проектов
*/
getAllProjects(): Promise<Project[]>;
/**
* Получает проект по ID
* @param {string} projectId ID проекта
* @returns {Promise<Project>} Проект
*/
getProject(projectId: string): Promise<Project>;
/**
* Создает новый проект
* @param {string} name Название проекта
* @param {string} path Путь к проекту
* @param {ProjectOptions} [options] Дополнительные опции проекта
* @returns {Promise<Project>} Созданный проект
*/
createProject(name: string, path: string, options?: ProjectOptions): Promise<Project>;
/**
* Обновляет проект
* @param {string} projectId ID проекта
* @param {Partial<ProjectUpdateData>} data Данные для обновления
* @returns {Promise<Project>} Обновленный проект
*/
updateProject(projectId: string, data: Partial<ProjectUpdateData>): Promise<Project>;
/**
* Удаляет проект
* @param {string} projectId ID проекта
* @returns {Promise<void>}
*/
deleteProject(projectId: string): Promise<void>;
/**
* Запускает индексацию проекта
* @param {string} projectId ID проекта
* @returns {Promise<IndexingResponse>} Информация о начатой индексации
*/
indexProject(projectId: string): Promise<IndexingResponse>;
/**
* Получает статус индексации проекта
* @param {string} projectId Идентификатор проекта
* @returns {Promise<any>} Статус индексации проекта
*/
getIndexingStatus(projectId: string): Promise<any>;
/**
* Отменяет индексацию проекта
* @param {string} projectId Идентификатор проекта
* @returns {Promise<boolean>} Результат отмены индексации
*/
cancelIndexing(projectId: string): Promise<boolean>;
/**
* Очищает ошибку индексации проекта
* @param {string} projectId Идентификатор проекта
* @returns {Promise<boolean>} Результат очистки ошибки
*/
clearIndexingError(projectId: string): Promise<boolean>;
/**
* Обновляет индекс конкретного файла в проекте
* @param {string} projectId ID проекта
* @param {string} filePath Путь к файлу (относительно корня проекта)
* @param {Object} options Опции обновления индекса
* @param {string} [options.content] Содержимое файла (если не указано, будет прочитано с диска)
* @param {boolean} [options.force=false] Принудительная переиндексация, даже если файл не изменился
* @returns {Promise<FileIndexResponse>} Информация об обновленном индексе файла
*/
updateFileIndex(projectId: string, filePath: string, options?: {
content?: string;
force?: boolean;
}): Promise<FileIndexResponse>;
/**
* Подключается к WebSocket для событий индексации
* @returns {Promise<boolean>} Результат подключения
*/
connectWebSocket(): Promise<boolean>;
/**
* Отключается от WebSocket для событий индексации
* @returns {Promise<void>}
*/
disconnectWebSocket(): Promise<void>;
/**
* Проверяет, подключен ли WebSocket
* @returns {boolean} Состояние подключения
*/
isWebSocketConnected(): boolean;
/**
* Устанавливает родительский SDK
* @param sdk Родительский SDK
*/
setParent(sdk: any): void;
/**
* Подписывается на событие через WebSocket
* @param event Название события
* @param callback Функция обратного вызова
*/
on(event: string, callback: Function): void;
/**
* Отправляет событие через WebSocket
* @param event Название события
* @param data Данные для отправки
*/
emitSocketEvent(event: string, data: any): void;
/**
* Отправляет событие через WebSocket с ожиданием ответа
* @param event Имя события
* @param data Данные для отправки
* @param timeout Таймаут ожидания ответа
* @returns {Promise<any>} Ответ от сервера
*/
sendSocketEventWithResponse(event: string, data: any, timeout?: number): Promise<any>;
/**
* Остановить индексацию проекта через WebSocket
* @param projectId ID проекта
* @returns {Promise<boolean>} Результат операции
*/
stopIndexing(projectId: string): Promise<boolean>;
}
//# sourceMappingURL=projects-api.d.ts.map