import { IndexManager } from "./Index.service";
/**
 * Service for removing documents from indexes
 *
 * When a document is deleted, this service removes its reference from all
 * relevant index entries to prevent stale references and maintain index integrity.
 *
 * @example
 * ```typescript
 * const deleteIndex = new DeleteIndex('/path/to/collection');
 * await deleteIndex.RemoveFromIndex('doc123', { email: 'test@example.com' });
 * ```
 */
export default class DeleteIndex extends IndexManager {
    private indexCache;
    constructor(path: string);
    /**
     * Removes a document from all matching indexes
     *
     * For each indexed field present in the document:
     * 1. Loads the index data from cache (or disk if not cached)
     * 2. Removes the document filename from indexEntries[fieldValue]
     * 3. Deletes the entry key if array becomes empty
     * 4. Updates both memory cache and disk atomically
     *
     * @param documentId - The document ID to remove (without file extension)
     * @param document - The document data containing indexed field values
     * @returns True if at least one index was updated, false otherwise
     */
    RemoveFromIndex(documentId: string, document: any): Promise<boolean>;
    /**
     * Removes multiple documents from all matching indexes (batch operation)
     *
     * @param documents - Array of { documentId, document } pairs to remove
     * @returns True if at least one index was updated, false otherwise
     */
    RemoveMultipleFromIndex(documents: Array<{
        documentId: string;
        document: any;
    }>): Promise<boolean>;
}
