import type { TInjectOptions as TCoreInjectOptions } from '@venizia/ignis-inversion'; /** Distributes over the union, so `key` and `target` stay mutually exclusive - a bare `Omit` collapses the two branches into one shape declaring both. */ type TWithoutRegistry = T extends unknown ? Omit : never; /** * Either a binding key or the class bound under it - never both. The shape is inversion's; the * `registry` member is not, because this wrapper is the one that supplies it. */ export type TInjectOptions = TWithoutRegistry; /** * `@inject`, bound to the kernel's registry. The container reads * `MetadataRegistry.getInstance()` (`helpers/inversion/container.ts`), while inversion's own * `inject` writes to its module-level registry - metadata written there is never read back. */ export declare const inject: (opts: TInjectOptions) => (target: any, propertyName: string | symbol | undefined, parameterIndex?: number) => void; export {}; //# sourceMappingURL=injectors.d.ts.map