registerProvider
Adds a lazily-initialized provider to the global registry with the given priority.
Lower priority values indicate higher precedence. Each registered provider must have a unique priority. Must be called before any call to getRegisteredProviders or getDefaultProvider.
Use getRegisteredProviders to retrieve all registered providers sorted by priority. Use getDefaultProvider to resolve the default provider from the registry.