import { DocumentPath } from '../../../domain/entities/DocumentPath.js'; import { MemoryDocument } from '../../../domain/entities/MemoryDocument.js'; import { Tag } from '../../../domain/entities/Tag.js'; import type { IFileSystemService } from '../../storage/interfaces/IFileSystemService.js'; import type { IConfigProvider } from '../../config/index.js'; import { FileSystemMemoryBankRepositoryBase } from './FileSystemMemoryBankRepositoryBase.js'; /** * Component responsible for bulk operations * Handles bulk retrieval, update, deletion of multiple documents */ export declare class BulkOperations extends FileSystemMemoryBankRepositoryBase { private readonly basePath; private readonly documentOps; private readonly tagOps; private readonly pathOps; /** * Constructor * @param basePath Base path * @param fileSystemService File system service * @param configProvider Configuration provider */ constructor(basePath: string, fileSystemService: IFileSystemService, configProvider: IConfigProvider); /** * Get multiple documents in bulk * @param paths Array of document paths to retrieve * @returns Array of documents (including null for non-existent ones) */ getDocuments(paths: DocumentPath[]): Promise<(MemoryDocument | null)[]>; /** * Save multiple documents in bulk * @param documents Array of documents to save */ saveDocuments(documents: MemoryDocument[]): Promise; /** * Delete multiple documents in bulk * @param paths Array of document paths to delete * @returns Array of booleans indicating success for each deletion */ deleteDocuments(paths: DocumentPath[]): Promise; /** * Find documents by tags * @param tags Array of tags to search for * @param matchAll Whether all tags must match (AND) or any tag is sufficient (OR) * @returns Array of matching documents */ findDocumentsByTags(tags: Tag[], matchAll?: boolean): Promise; /** * List all documents * @returns Array of all documents */ getAllDocuments(): Promise; /** * Get all documents within a specific directory * @param directoryPath Directory path * @returns Array of documents within the directory */ getDocumentsInDirectory(directoryPath: string): Promise; /** * Regenerate the tag index * @returns true if successful */ rebuildTagIndex(): Promise; /** * Validate if the directory structure is valid * @returns Validation result (true if successful) */ validateStructure(): Promise; } //# sourceMappingURL=BulkOperations.d.ts.map