UNPKG

vue-di-container

Version:
37 lines (36 loc) 1.01 kB
import { Ctor, Func } from './util'; export declare class Token<T> { readonly name?: string | undefined; constructor(name?: string | undefined); } export declare type Key<T> = Ctor<T> | Token<T>; export interface ValueProvider<T> { key: Key<T>; value: any; } export declare type ArgKeys = (Key<any> | undefined)[]; export interface PropertyKeys { [name: string]: Key<any>; } export interface FullClassProvider<T> { key: Key<T>; class: Ctor<T>; args?: ArgKeys; props?: PropertyKeys; } export interface ShortClassProvider<T> { key: Ctor<T>; args?: ArgKeys; props?: PropertyKeys; } export declare type ClassProvider<T> = FullClassProvider<T> | ShortClassProvider<T> | Ctor<T>; export interface FactoryProvider<T> { key: Key<T>; factory: Func<T>; args?: ArgKeys; } export interface AliasProvider<T> { key: Key<T>; aliasOf: Key<T>; } export declare type Provider<T> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T> | AliasProvider<T>;