<?php

declare(strict_types=1);

namespace App\Framework\Reflection;

use App\Framework\Reflection\Contracts\AttributeReflector;
use App\Framework\Reflection\Contracts\CacheManager;
use App\Framework\Reflection\Contracts\ClassReflector;
use App\Framework\Reflection\Contracts\EnumReflector;
use App\Framework\Reflection\Contracts\InstantiationReflector;
use App\Framework\Reflection\Contracts\MethodReflector;
use App\Framework\Reflection\Contracts\ParameterReflector;
use App\Framework\Reflection\Contracts\PropertyReflector;

/**
 * Main reflection provider interface combining all reflection capabilities
 *
 * This interface extends all specialized reflector interfaces to provide
 * a unified API for reflection operations. For more focused use cases,
 * consider using the specialized interfaces directly.
 */
interface ReflectionProvider extends
    ClassReflector,
    MethodReflector,
    PropertyReflector,
    ParameterReflector,
    AttributeReflector,
    EnumReflector,
    InstantiationReflector,
    CacheManager
{
    // No additional methods required
}
