import { ActivationContext } from "./ActivationContext"; import { Descriptor, ServiceMap, PartialServiceMap, ILifetime } from "./interfaces"; import { MatchingMemberKeys } from "../interfaces"; export declare type Cleaner = ((x: T) => void) | MatchingMemberKeys void>; export declare type InjectionSpec = { [m in keyof T]?: any; }; export interface ServiceDescriptorParams { lifetime?: ILifetime; params?: P; inject?: InjectionSpec[]; services?: PartialServiceMap; cleanup?: Cleaner; } export declare class ServiceDescriptor implements Descriptor { _services: ServiceMap; _params: P | undefined; _inject: InjectionSpec[]; _cleanup: ((item: T) => void) | undefined; _lifetime: ILifetime; _objectLifetime: ILifetime | undefined; constructor(opts: ServiceDescriptorParams); activate(context: ActivationContext): any; _factory(...params: any[]): T; _create(context: ActivationContext): T; clone(): any; }