ProviderCapabilities class abstract
Provider capability declaration interface
This interface provides a high-level overview of provider capabilities for documentation, selection, and informational purposes.
Important Notes:
- 
Model Variations: Actual feature support may vary by specific model within the same provider (e.g., GPT-4 vs GPT-3.5, Claude Sonnet vs Haiku) 
- 
OpenAI-Compatible Providers: Providers using OpenAI-compatible APIs may have different capabilities than what's declared here, as they're accessed through baseUrl/apiKey configuration 
- 
Runtime Detection: Some features (like reasoning output format) are detected at runtime through response parsing rather than capability checks 
- 
Informational Purpose: This is primarily for provider selection and documentation, not strict runtime validation 
Usage Examples:
// Provider selection based on capabilities
if (provider.supports(LLMCapability.vision)) {
  // This provider generally supports vision
}
// But always handle runtime variations gracefully
final response = await provider.chat(messagesWithImage);
if (response.text != null) {
  // Process response regardless of capability declaration
}
Constructors
Properties
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
- 
  supportedCapabilities
  → Set<LLMCapability> 
- 
  Set of capabilities this provider supports
  no setter
Methods
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  supports(LLMCapability capability) → bool 
- Check if this provider supports a specific capability
- 
  toString() → String 
- 
  A string representation of this object.
  inherited
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited