import type { Newable } from '@difizen/mana-app';
import { Syringe } from '@difizen/mana-app';
export declare const AutoFactoryOption: Syringe.DefinedToken;
export declare const AutoFactoryMeta: Syringe.DefinedToken;
export declare function autoFactory<T = any>(): (target: Newable<T>) => void;
export type ToAutoFactory<T extends Newable<any>> = (option: ConstructorParameters<T>[0]) => InstanceType<T>;
export declare const toAutoFactory: <T extends Newable<any>>(target: T) => Syringe.Token<(...args: ConstructorParameters<T>) => InstanceType<T>>;
export declare const injectFactory: <T extends Newable<any>>(token: T) => (target: any, targetKey: any, index?: number | undefined) => void;
export declare const modelFactory: <O extends Syringe.Token<T>, T>(option: any, modelToken: O, ctx: Syringe.Context) => T;
//# sourceMappingURL=auto-factory.d.ts.map