import { HttpClient } from '../utils/http-client.js';
import { DependencyGraph, DependencyGraphAnalysis, DependencyStatistics, FileDependenciesRequest, FileDependenciesResponse, FileDetails, RelatedComponentsRequest, RelatedComponentsResponse } from '../models/types.js';
/**
 * API для работы с зависимостями файлов в проектах
 */
export declare class DependenciesApi {
    private readonly client;
    private readonly baseUrl;
    /** WebSocket клиент */
    private wsClient;
    /** Родительский SDK */
    private parentSdk;
    /**
     * Создает новый экземпляр API для работы с зависимостями
     * @param httpClient HTTP клиент для запросов к API
     */
    constructor(httpClient: HttpClient);
    /**
     * Получает зависимости конкретного файла
     * @param projectId ID проекта
     * @param params Параметры запроса зависимостей файла
     * @returns Зависимости файла
     */
    getFileDependencies(projectId: string, params: FileDependenciesRequest): Promise<FileDependenciesResponse>;
    /**
     * Получает граф зависимостей проекта
     * @param projectId ID проекта
     * @returns Граф зависимостей
     */
    getDependencyGraph(projectId: string): Promise<DependencyGraph>;
    /**
     * Получает статистику зависимостей проекта
     * @param projectId ID проекта
     * @returns Статистика зависимостей
     */
    getDependencyStatistics(projectId: string): Promise<DependencyStatistics>;
    /**
     * Получает детальную информацию о файле
     * @param projectId ID проекта
     * @param filePath Путь к файлу
     * @returns Информация о файле
     */
    getFileDetails(projectId: string, filePath: string): Promise<FileDetails>;
    /**
     * Получает связанные компоненты для файла
     * @param projectId ID проекта
     * @param params Параметры запроса связанных компонентов
     * @returns Связанные компоненты
     */
    getRelatedComponents(projectId: string, params: RelatedComponentsRequest): Promise<RelatedComponentsResponse>;
    /**
     * Анализирует граф зависимостей проекта
     * @param projectId ID проекта
     * @returns Результат анализа
     */
    analyzeDependencyGraph(projectId: string): Promise<DependencyGraphAnalysis>;
    /**
     * Присоединяется к проекту через WebSocket
     * @param projectId ID проекта
     * @param wsClient WebSocket клиент (опционально)
     * @returns {Promise<{success: boolean, projectId: string, error?: string}>} Результат операции
     */
    joinProject(projectId: string, wsClient?: any): Promise<{
        success: boolean;
        projectId: string;
        error?: string;
    }>;
    /**
     * Подключается к 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>;
}
//# sourceMappingURL=dependencies-api.d.ts.map