import { InjectionToken, Provider } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Item, ItemOptions } from '../core/item'; import { PotionBase, PotionOptions, RequestOptions } from '../core/potion'; /** * Token for providing the Potion resources to be registered * NOTE: This is a multi provider. */ export declare const POTION_RESOURCES: InjectionToken; export interface PotionResources { [key: string]: typeof Item | [typeof Item, ItemOptions]; } /** * Token for configuring Potion */ export declare const POTION_CONFIG: InjectionToken; export interface PotionConfig extends PotionOptions { } /** * Potion provider for Angular * NOTE: This does not need to be injected anywhere in the app */ export declare class Potion extends PotionBase { private http; constructor(http: HttpClient, config: PotionConfig); registerFromProvider(resources: PotionResources[]): void; protected request(uri: string, options?: RequestOptions): Promise; } export declare function POTION_PROVIDER_FACTORY(parentFactory: Potion, http: HttpClient, config: PotionConfig): Potion; export declare const POTION_PROVIDER: Provider;