import { Container } from './container'; import { InjectToken } from './inject-token'; export interface Constructor { new (...args: any[]): T; } export interface Service { destroy?: (...args: any[]) => any; } export interface ServiceClass extends Constructor { } export interface Factory { (...args: any[]): T; } export interface Provider { create(container?: Container, parent?: InjectToken): T; destroy?: (...args: any[]) => any; } export interface ProviderClass extends Constructor> { dependencies?: (...args: any[]) => any; } export declare function isProviderClass(fn: any): fn is ProviderClass;