/**
 * 🚀 Delta-Chunking API клиент
 * Интеграция с backend endpoints
 */
import { HttpClient } from '../utils/http-client.js';
import { SyncInitRequest, DeltaChunksBatchRequest, SyncStatus, EncryptedChunk, SyncResult, ActiveFile, FileCleanupResult, InvalidateFileOptions, FileInvalidationResult, BatchInvalidationResult } from '../types/delta-chunking.js';
/**
 * API клиент для delta-chunking операций
 */
export declare class DeltaChunkingApi {
    private readonly httpClient;
    constructor(httpClient: HttpClient);
    /**
     * Инициализация синхронизации проекта
     */
    initSync(projectId: string, request: SyncInitRequest): Promise<{
        needsSync: boolean;
        sessionId?: string;
        lastSyncHash?: string;
    }>;
    /**
     * Отправка батча зашифрованных чанков
     */
    uploadChunkBatch(projectId: string, batchRequest: DeltaChunksBatchRequest): Promise<{
        processed: number;
        failed: number;
        errors?: string[];
    }>;
    /**
     * Получение статуса синхронизации
     */
    getSyncStatus(projectId: string): Promise<SyncStatus>;
    /**
     * Завершение синхронизации
     */
    finalizeSync(projectId: string): Promise<SyncResult>;
    /**
     * Отмена синхронизации
     */
    cancelSync(projectId: string): Promise<{
        success: boolean;
        message?: string;
    }>;
    /**
     * Batch upload с retry логикой
     */
    uploadChunksWithRetry(projectId: string, chunks: EncryptedChunk[], options?: {
        batchSize?: number;
        maxRetries?: number;
        onProgress?: (current: number, total: number) => void;
    }): Promise<SyncResult>;
    /**
     * Очистка удаленных файлов из векторной базы
     * @param projectId ID проекта
     * @param activeFiles Список активных файлов (оставшихся после удаления)
     * @param deletedFiles ОПЦИОНАЛЬНО: Явно удаленные файлы (пути)
     */
    cleanupFiles(projectId: string, activeFiles: ActiveFile[], deletedFiles?: string[]): Promise<FileCleanupResult>;
    /**
     * Инвалидировать chunks измененного файла
     */
    invalidateFile(projectId: string, options: InvalidateFileOptions): Promise<FileInvalidationResult>;
    /**
     * Batch инвалидация chunks для нескольких файлов
     * (для предотвращения rate limiting)
     */
    invalidateFiles(projectId: string, files: InvalidateFileOptions[]): Promise<BatchInvalidationResult>;
}
//# sourceMappingURL=delta-chunking-api.d.ts.map