import { type InstanceBinding } from '../../binding/models/InstanceBinding.js'; import { type ResolutionParams } from '../../resolution/models/ResolutionParams.js'; import { type Resolved } from '../../resolution/models/Resolved.js'; import { type InstanceBindingNode } from '../models/InstanceBindingNode.js'; /** * Builds a `resolveNode` for a zero-argument instance binding without * relying on the `Function` constructor. * * `buildZeroConstructorArgumentsResolverJit` generates a brand new function * from source text for every binding to keep the `new ctor()` call site * monomorphic in V8's eyes. That approach requires `unsafe-eval` (or an * equivalent CSP trusted types allowance), so it cannot be used in * environments enforcing a strict Content Security Policy. * * This function provides the same behavior using a plain closure instead, * so it works under CSP restrictions at the cost of the per-binding * monomorphic optimization described above. * * When the bound class has no properties to inject, * `node.classMetadata.properties` is empty and the returned `resolveNode` * never performs any property related check, matching the zero-property * fast path performance of `buildZeroConstructorArgumentsResolverJit`. */ export declare function buildZeroConstructorArgumentsResolver(node: InstanceBindingNode>, resolveActivations?: (params: ResolutionParams, instance: Resolved) => Resolved): (params: ResolutionParams) => Resolved; //# sourceMappingURL=buildZeroConstructorArgumentsResolver.d.ts.map