UNPKG

@sustain/core

Version:

Sustain is a Framework that is barely used despedcies to make stable and sustainable apps

27 lines (26 loc) 1.05 kB
import { Type } from './type'; export declare class InjectionToken { injectionIdentifier: string; constructor(injectionIdentifier: string); } export declare type Factory<T> = () => T; export declare type Token<T> = Type<T> | any; export interface BaseProvider<T> { provide: Token<T>; } export interface ClassProvider<T> extends BaseProvider<T> { provide: Token<T>; useClass: Type<T>; } export interface ValueProvider<T> extends BaseProvider<T> { provide: Token<T>; useValue: T; } export interface FactoryProvider<T> extends BaseProvider<T> { provide: Token<T>; useFactory: Factory<T>; } export declare type Provider<T> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<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>;