import type { LocalsContainer } from "../domain/LocalsContainer.js"; import { TokenProvider } from "./TokenProvider.js"; /** * Options for invoking and building a provider instance. * * Controls how the injector resolves dependencies, handles imports, and constructs provider instances. * Used when manually invoking the injector to create instances with specific configuration. * * @public */ export interface InvokeOptions { /** * Define dependencies to build the provider and inject them in the constructor. */ deps: TokenProvider[]; /** * List of imports to be created before the provider. Imports list aren't injected directly in the provider constructor. */ imports: TokenProvider[]; /** * Parent provider. */ parent?: TokenProvider; /** * If true, the injector will rebuild the instance. */ rebuild?: boolean; /** * Option given to injectable props or parameter constructor (UseOpts). */ useOpts?: Record; locals?: LocalsContainer; }