import 'reflect-metadata'; import { Container } from './Container'; declare type IClassType = new () => T; interface IDecoratedInstance { __decoratorInstances?: BaseDecorator[]; } export declare abstract class BaseDecorator { options: T; instance: any; prototype: any; propertyName: string; descriptor: PropertyDescriptor; created(): void; destroyed(): void; } export declare function createDecorator>(decoratorClass: IClassType, params: P): Function; export declare function initializeDecorators(target: IDecoratedInstance, container: Container): void; export declare function initializeContainer(container: Container): void; export declare function destroyDecorators(target: IDecoratedInstance, container: Container): void; export declare function destroyContainer(container: Container): void; export {};