import { BranchInfo } from "../../../domain/entities/BranchInfo.js";
import { DocumentPath } from "../../../domain/entities/DocumentPath.js";
import { MemoryDocument } from "../../../domain/entities/MemoryDocument.js";
import { Tag } from "../../../domain/entities/Tag.js";
import { DocumentLister } from "./DocumentLister.js";
import { DocumentIO } from "./DocumentIO.js";
/**
 * Handles finding documents within a branch, potentially using tags or indices.
 */
export declare class DocumentFinder {
    private readonly documentLister;
    private readonly documentIO;
    /**
     * Constructor
     * @param documentLister Instance for listing documents.
     * @param documentIO Instance for reading document content.
     */
    constructor(documentLister: DocumentLister, documentIO: DocumentIO);
    /**
     * Finds documents by tags (currently returns all documents).
     * Migrated from FileSystemBranchMemoryBankRepository.findDocumentsByTags
     * @param branchInfo Branch information
     * @param _tags Tags to search for (currently unused)
     * @returns Promise resolving to array of matching documents
     */
    findDocumentsByTags(branchInfo: BranchInfo, _tags: Tag[]): Promise<MemoryDocument[]>;
    /**
     * Finds document paths by tags using index (currently falls back).
     * Migrated from FileSystemBranchMemoryBankRepository.findDocumentPathsByTagsUsingIndex
     * @param branchInfo Branch information
     * @param tags Tags to search for
     * @param _matchAll If true, documents must have all tags (AND), otherwise any tag (OR)
     * @returns Promise resolving to array of document paths
     */
    findDocumentPathsByTagsUsingIndex(params: {
        branchInfo: BranchInfo;
        tags: Tag[];
        matchAll?: boolean;
    }): Promise<DocumentPath[]>;
}
//# sourceMappingURL=DocumentFinder.d.ts.map