import { IMemoryDocumentRepository } from '../../../domain/repositories/IMemoryDocumentRepository.js';
import { MemoryDocument } from '../../../domain/entities/MemoryDocument.js';
import { DocumentPath } from '../../../domain/entities/DocumentPath.js';
import { Tag } from '../../../domain/entities/Tag.js';
import { IFileSystemService } from '../../storage/interfaces/IFileSystemService.js';
/**
 * File system based implementation of memory document repository
 */
export declare class FileSystemMemoryDocumentRepository implements IMemoryDocumentRepository {
    private readonly basePath;
    private readonly fileSystemService;
    /**
     * Constructor
     * @param basePath Base path for storing documents
     * @param fileSystemService File system service
     */
    constructor(basePath: string, fileSystemService: IFileSystemService);
    /**
     * Find document by path
     * @param path Document path
     * @returns Promise resolving to document if found, null otherwise
     */
    findByPath(path: DocumentPath): Promise<MemoryDocument | null>;
    /**
     * Find documents by tags
     * @param tags Tags to search for
     * @returns Promise resolving to array of matching documents
     */
    findByTags(tags: Tag[]): Promise<MemoryDocument[]>;
    /**
     * Save document
     * @param document Document to save
     * @returns Promise resolving when done
     */
    save(document: MemoryDocument): Promise<void>;
    /**
     * Delete document
     * @param path Document path
     * @returns Promise resolving to boolean indicating success
     */
    delete(path: DocumentPath): Promise<boolean>;
    /**
     * List all document paths
     * @returns Promise resolving to array of document paths
     */
    list(): Promise<DocumentPath[]>;
    /**
     * Resolve path to full file path
     * @param documentPath Document path relative to base path
     * @returns Full file path
     */
    private resolvePath;
}
//# sourceMappingURL=FileSystemMemoryDocumentRepository.d.ts.map