import { Effect } from "effect"; import type { DuplicateInfo } from "../../core/types/index.js"; /** * Генерирует SARIF отчет с помощью jscpd. * * @returns Путь к сгенерированному SARIF файлу */ /** * Генерирует SARIF отчет с помощью jscpd для заданного пути. * * Инварианты: * - Выходной каталог reports/jscpd существует после вызова * - Используется SARIF-репортер, артефакт сохраняется в reports/jscpd * - Не полагаемся на exit code jscpd (при дублях он не ноль) * * @param targetPath Корневой путь сканирования (из CLI) * @returns Абсолютный путь к найденному SARIF файлу */ export declare function generateSarifReport(targetPath: string): Effect.Effect; /** * Парсит SARIF отчет и извлекает информацию о дубликатах. * * CHANGE: Refactored to reduce complexity from 11 to <8 * WHY: Original function had complexity 11 * QUOTE(LINT): "Function has a complexity of 11. Maximum allowed is 8" * REF: ESLint complexity * SOURCE: n/a * * @param sarifPath Путь к SARIF файлу * @returns Массив информации о дубликатах */ export declare function parseSarifReport(sarifPath: string): readonly DuplicateInfo[]; /** * CHANGE: Очистка артефактов отчета, если дубликаты не найдены * WHY: После успешной проверки без дублей не оставлять мусор в reports/ * QUOTE(ТЗ): "Любое решение строится на инвариантах" — артефакты не нужны при 0 дубликатах * REF: REQ-DUP-SARIF-OUT * * Инварианты: * - Не бросает исключения; ошибки удаления игнорируются. * - Удаляет файл SARIF; затем директорию reports/jscpd и родительскую reports при пустоте. */ export declare function cleanupReportsArtifacts(sarifPath: string, hasDuplicates: boolean): void; /** * Отображает дубликаты кода из SARIF отчета. * * CHANGE: Refactored to reduce line count * WHY: Original function had 56 lines * QUOTE(LINT): "Function has too many lines (56). Maximum allowed is 50" * REF: ESLint max-lines-per-function * SOURCE: n/a * * @param duplicates Массив информации о дубликатах * @param maxClones Максимальное количество дубликатов для отображения * @param width Ширина терминала */ export declare function displayClonesFromSarif(duplicates: readonly DuplicateInfo[], maxClones: number, width: number): void; //# sourceMappingURL=duplicates.d.ts.map