import { HttpClient } from '../utils/http-client.js';
/**
 * Параметры поиска кода
 */
export interface SearchCodeParams {
    /** Поисковый запрос */
    query: string;
    /** Лимит результатов */
    limit?: number;
    /** Смещение для пагинации */
    offset?: number;
    /** Фильтр по расширениям файлов */
    fileExtensions?: string[];
    /** Паттерны для включения файлов */
    includePatterns?: string[];
    /** Паттерны для исключения файлов */
    excludePatterns?: string[];
}
/**
 * Результат поиска кода
 */
export interface SearchResult {
    /** Идентификатор результата */
    id: string;
    /** Путь к файлу */
    filePath: string;
    /** Относительный путь к файлу */
    relativePath: string;
    /** Язык программирования */
    language: string;
    /** Начальная строка совпадения */
    startLine: number;
    /** Конечная строка совпадения */
    endLine: number;
    /** Фрагмент кода с совпадением */
    snippet: string;
    /** Релевантность результата (0-100) */
    score: number;
}
/**
 * Результаты поиска кода
 */
export interface SearchResults {
    /** Результаты поиска */
    results: SearchResult[];
    /** Общее количество найденных результатов */
    total: number;
    /** Время выполнения запроса в мс */
    time: number;
}
/**
 * API для поиска кода
 */
export declare class SearchApi {
    /** HTTP клиент */
    private readonly httpClient;
    /**
     * Создает новый экземпляр API для поиска кода
     * @param {HttpClient} httpClient HTTP клиент
     */
    constructor(httpClient: HttpClient);
    /**
     * Выполняет поиск кода в проекте
     * @param {string} projectId Идентификатор проекта
     * @param {SearchCodeParams} params Параметры поиска
     * @returns {Promise<SearchResults>} Результаты поиска
     */
    searchCode(projectId: string, params: SearchCodeParams): Promise<SearchResults>;
    /**
     * Выполняет семантический поиск кода в проекте
     * @param {string} projectId Идентификатор проекта
     * @param {SearchCodeParams} params Параметры поиска
     * @returns {Promise<SearchResults>} Результаты поиска
     */
    semanticSearch(projectId: string, params: SearchCodeParams): Promise<SearchResults>;
    /**
     * Получает популярные поисковые запросы
     * @param {string} projectId Идентификатор проекта
     * @param {number} [limit=10] Лимит результатов
     * @returns {Promise<string[]>} Популярные поисковые запросы
     */
    getPopularQueries(projectId: string, limit?: number): Promise<string[]>;
    /**
     * Получает подсказки для автозаполнения поискового запроса
     * @param {string} projectId Идентификатор проекта
     * @param {string} query Начало поискового запроса
     * @param {number} [limit=5] Лимит результатов
     * @returns {Promise<string[]>} Подсказки для автозаполнения
     */
    getQuerySuggestions(projectId: string, query: string, limit?: number): Promise<string[]>;
}
//# sourceMappingURL=search-api.d.ts.map