/******************************************************************************* * Copyright (c) 2025-2026 Maxprograms. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/org/documents/epl-v10.html * * Contributors: * Maxprograms - initial API and implementation *******************************************************************************/ import { XMLElement } from 'typesxml'; import { ImportOptions } from './importOptions.js'; import { EntryMetadata, LangEntry, SearchResult } from './langEntry.js'; import { Match } from './match.js'; import { PendingEntry } from './pendingEntry.js'; import { MetadataFilter, TranslationSearchFilters } from './searchFilters.js'; export declare class HybridTM { static readonly COMPACT_MODEL: string; static readonly STANDARD_MODEL: string; static readonly LARGE_MODEL: string; private name; private db; private table; private dbPath; private embedder; private embedderPromise; private modelName; private initialized; private initializationPromise; private static modelCacheConfigured; constructor(name: string, filePath: string, modelName?: string); private detectModelDimensions; private initialize; private initializeDatabase; private initializeEmbedder; private loadEmbedder; private static configureModelCacheDir; private generateEmbedding; private ensureInitialized; private ensureTable; private hydrateEntries; private hydrateEntry; private flattenEntry; private mapToSearchResult; private buildEntryId; private flattenMetadata; private unflattenMetadata; private parseNotes; private parseSegment; private parseProperties; private parseNumber; close(): Promise; concordanceSearch(textFragment: string, language: string, limit?: number, filters?: MetadataFilter): Promise[]>; semanticSearch(queryText: string, language: string, limit?: number, filters?: MetadataFilter): Promise; semanticTranslationSearch(searchStr: string, srcLang: string, tgtLang: string, similarity: number, limit?: number, filters?: TranslationSearchFilters): Promise>; private findTargetEntry; private computeRankingScore; private parseMetadataTimestamp; private selectPreferredCandidate; private metadataMatches; private getStateRank; storeLangEntry(fileId: string, original: string, unitId: string, lang: string, pureText: string, element: XMLElement, embeddings?: number[], segmentIndex?: number, segmentCount?: number, metadata?: EntryMetadata): Promise; storeBatchEntries(entries: PendingEntry[]): Promise; entryExists(fileId: string, unitId: string, lang: string, segmentIndex?: number): Promise; getLangEntry(fileId: string, unitId: string, lang: string, segmentIndex?: number): Promise; deleteLangEntry(fileId: string, unitId: string, lang: string, segmentIndex?: number): Promise; importXLIFF(filePath: string, options?: ImportOptions): Promise; importTMX(filePath: string, options?: ImportOptions): Promise; importSDLTM(filePath: string, options?: ImportOptions): Promise; restore(filePath: string): Promise; backup(outputPath: string): Promise; private buildBackupEntryElement; private buildBackupMetadataElement; private appendTextElement; }