FinderInterface.php•856 B
<?php
declare(strict_types=1);
namespace Butschster\ContextGenerator\Lib\Finder;
use Butschster\ContextGenerator\Source\Fetcher\FilterableSourceInterface;
/**
 * Interface for file finders
 *
 * This interface defines the contract for different file finding implementations,
 * allowing for consistent usage across different sources (local files, GitHub, etc.)
 */
interface FinderInterface
{
    /**
     * Find files based on the given source configuration
     *
     * @param FilterableSourceInterface $source Source configuration with filter criteria
     * @param string $basePath Optional base path to normalize file paths in the tree view
     * @return FinderResult The result containing found files and tree view
     */
    public function find(FilterableSourceInterface $source, string $basePath = '', array $options = []): FinderResult;
}