/**
 * Information about a scanned file
 */
export interface FileInfo {
    path: string;
    name: string;
    size: number;
    modifiedTime: number;
    directory: string;
}
/**
 * Cached directory scanner that reduces filesystem operations
 * Maintains an index of files and only rescans when needed
 */
export declare class DirectoryScanner {
    private cache;
    private cacheTTL;
    private excludedDirs;
    /**
     * @param cacheTTL - Cache time-to-live in milliseconds (default from config)
     * @param excludedDirs - Directory names to skip during scanning (defaults to SPECIAL_DIRECTORIES)
     */
    constructor(cacheTTL?: number, excludedDirs?: string[]);
    /**
     * Scan a directory and return all files matching the pattern
     * Uses cache when available and valid
     *
     * @param baseDir - Root directory to scan
     * @param filePattern - Optional regex pattern to match files (null = match all)
     * @param forceRefresh - Force cache refresh even if valid
     * @returns Array of file information
     */
    scanDirectory(baseDir: string, filePattern?: RegExp | null, forceRefresh?: boolean): Promise<FileInfo[]>;
    /**
     * Find files by date pattern (e.g., "2025-11-02")
     * Optimized for consolidation use case
     *
     * @param baseDir - Root directory to scan
     * @param dateStr - Date string to match (YYYY-MM-DD format)
     * @param excludeConsolidated - Exclude already consolidated files
     * @returns Array of matching files
     */
    findFilesByDate(baseDir: string, dateStr: string, excludeConsolidated?: boolean): Promise<FileInfo[]>;
    /**
     * Recursive directory walker
     * Private method used by scanDirectory
     */
    private walkDirectory;
    /**
     * Invalidate cache for a specific directory
     * Call this when files are added/removed in that directory
     */
    invalidateCache(directory: string): void;
    /**
     * Clear entire cache
     * Useful for testing or manual cache refresh
     */
    clearCache(): void;
    /**
     * Get cache statistics
     */
    getCacheStats(): {
        entries: number;
        totalFiles: number;
        totalDirectories: number;
    };
    /**
     * Get list of cached directories
     */
    getCachedDirectories(): string[];
}
//# sourceMappingURL=directory-scanner.d.ts.map