/** * Duplicate detection logic */ import type { CslItem } from "../../core/csl-json/types.js"; import type { DuplicateResult } from "./types.js"; /** * Normalize DOI by removing common URL prefixes * Returns the DOI in format: 10.xxxx/... */ export declare function normalizeDoi(doi: string): string; /** * Extract year from CSL-JSON issued field */ export declare function extractYear(item: CslItem): string | null; /** * Normalize author names to "family given-initial" format */ export declare function normalizeAuthors(item: CslItem): string | null; /** * Normalize ISBN by removing hyphens, spaces, and uppercasing X */ export declare function normalizeIsbnForComparison(isbn: string): string; /** * Types that should match by ISBN + title (chapters in the same book can differ) */ export declare const BOOK_SECTION_TYPES: string[]; /** * Detects if a reference is a duplicate of any existing references * * Priority order: * 1. DOI (highest priority) * 2. PMID * 3. ISBN * 4. arXiv ID * 5. ERIC ID * 6. Scopus ID * 7. Title + Author + Year (lowest priority) * * @param item - The reference to check for duplicates * @param existingReferences - Array of existing references to check against * @returns DuplicateResult indicating if duplicate found and match details */ export declare function detectDuplicate(item: CslItem, existingReferences: CslItem[]): DuplicateResult; //# sourceMappingURL=detector.d.ts.map