# RuntimeMetadataProvider class abstract interface

A contract for providing access to reflection metadata in JetLeaf.

This interface defines common methods for accessing reflected types, libraries, packages, and assets. It serves as a base for both runtime registry and provider implementations.

Implementations can be used for:

- Serialization
- Dependency injection
- Dynamic routing
- Code generation

{@template reflection_metadata_provider_example} Example usage:

    final provider = SomeReflectionMetadataProvider();

    // Get all reflected classes
    final classes = provider.getAllClasses();

    // Get metadata for specific type
    final stringType = provider.getReflectedType(String);

    // Get library information
    final dartCore = provider.getReflectedLibrary('dart:core');

{@endtemplate}

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

getAllAssets() → List<Asset>
  Returns all assets available in the reflection context.
getAllLibraries() → List<LibraryDeclaration>
  Returns all reflected libraries available in the reflection context.
getAllPackages() → List<Package>
  Returns all packages available in the reflection context.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited