UNPKG

dynamicsmobile

Version:

Allows development of off-line mobile and web business apps over the Dynamics Mobile platform. More info on https://www.dynamicsmobile.com

38 lines (37 loc) 1.4 kB
import { Type } from "./type"; export declare class InjectionToken { injectionIdentifier: string; constructor(injectionIdentifier: string); } export type Factory<T> = () => T; export type Token<T> = Type<T> | InjectionToken; export interface BaseProvider<T> { provide: Token<T>; replace?: boolean; } export interface ClassProvider<T> extends BaseProvider<T> { provide: Token<T>; useClass: Type<T>; replace?: boolean; } export interface ValueProvider<T> extends BaseProvider<T> { provide: Token<T>; useValue: T; replace?: boolean; } export interface FactoryProvider<T> extends BaseProvider<T> { provide: Token<T>; useFactory: Factory<T>; replace?: boolean; } export interface SingletonClassProvider<T> extends BaseProvider<T> { provide: Token<T>; useClass: Type<T>; singleton: true; replace?: boolean; } export type Provider<T> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T> | SingletonClassProvider<T>; export declare function isClassProvider<T>(provider: BaseProvider<T>): provider is ClassProvider<T>; export declare function isValueProvider<T>(provider: BaseProvider<T>): provider is ValueProvider<T>; export declare function isFactoryProvider<T>(provider: BaseProvider<T>): provider is FactoryProvider<T>; export declare function isSingletonProvider<T>(provider: BaseProvider<T>): provider is ClassProvider<T>;