import { WebSocketClient, WebSocketClientOptions } from './websocket-client.js';
/**
 * События индексации
 */
export declare enum IndexingEvent {
    /** Начало индексации */
    START = "indexing_start",
    /** Прогресс индексации */
    PROGRESS = "indexing_progress",
    /** Завершение индексации */
    COMPLETE = "indexing_complete",
    /** Ошибка индексации */
    ERROR = "indexing_error"
}
/**
 * Данные о прогрессе индексации
 */
export interface IndexingProgressData {
    /** Идентификатор проекта */
    projectId: string;
    /** Общее количество файлов */
    totalFiles: number;
    /** Количество проиндексированных файлов */
    indexedFiles: number;
    /** Процент завершения индексации */
    progress: number;
    /** Время начала индексации */
    startTime: string;
    /** Прошедшее время в секундах */
    elapsedTime: number;
    /** Оставшееся время в секундах (приблизительно) */
    estimatedTimeRemaining?: number;
}
/**
 * Данные о завершении индексации
 */
export interface IndexingCompleteData {
    /** Идентификатор проекта */
    projectId: string;
    /** Общее количество файлов */
    totalFiles: number;
    /** Количество проиндексированных файлов */
    indexedFiles: number;
    /** Количество пропущенных файлов */
    skippedFiles: number;
    /** Время начала индексации */
    startTime: string;
    /** Время завершения индексации */
    endTime: string;
    /** Общее время индексации в секундах */
    totalTime: number;
}
/**
 * Данные об ошибке индексации
 */
export interface IndexingErrorData {
    /** Идентификатор проекта */
    projectId: string;
    /** Сообщение об ошибке */
    message: string;
    /** Код ошибки */
    code?: string;
    /** Детали ошибки */
    details?: any;
}
/**
 * Опции для WebSocket клиента индексации
 */
export interface IndexingWebSocketOptions extends WebSocketClientOptions {
    /** Идентификатор проекта */
    projectId?: string;
    /** API ключ для авторизации */
    apiKey?: string;
}
/**
 * WebSocket клиент для работы с индексацией
 */
export declare class IndexingWebSocketClient extends WebSocketClient {
    /** Идентификатор проекта */
    private projectId;
    /** Базовый URL без параметров */
    private baseUrl;
    /**
     * Создает новый WebSocket клиент для индексации
     * @param {string} url URL для подключения
     * @param {IndexingWebSocketOptions} [options] Опции клиента
     */
    constructor(url: string, options?: IndexingWebSocketOptions);
    /**
     * Устанавливает идентификатор проекта
     * @param {string} projectId Идентификатор проекта
     */
    setProjectId(projectId: string): void;
    /**
     * Подключается к WebSocket для отслеживания индексации
     * @param {string} [projectId] Идентификатор проекта (если не был указан в конструкторе)
     * @returns {Promise<void>}
     */
    connect(projectId?: string): Promise<void>;
    /**
     * Подписывается на события начала индексации
     * @param {(data: {projectId: string}) => void} handler Обработчик события
     */
    onStart(handler: (data: {
        projectId: string;
    }) => void): void;
    /**
     * Подписывается на события прогресса индексации
     * @param {(data: IndexingProgressData) => void} handler Обработчик события
     */
    onProgress(handler: (data: IndexingProgressData) => void): void;
    /**
     * Подписывается на события завершения индексации
     * @param {(data: IndexingCompleteData) => void} handler Обработчик события
     */
    onComplete(handler: (data: IndexingCompleteData) => void): void;
    /**
     * Подписывается на события ошибок индексации
     * @param {(data: IndexingErrorData) => void} handler Обработчик события
     */
    onError(handler: (data: IndexingErrorData) => void): void;
}
//# sourceMappingURL=indexing-websocket-client.d.ts.map