import { type Newable, type ServiceIdentifier } from '@inversifyjs/common'; import { type BindingActivation, type BindingConstraints, type BindingDeactivation, type DynamicValueBuilder, type Factory, type MetadataName, type MetadataTag, type ResolutionContext } from '@inversifyjs/core'; import { type BindingIdentifier } from './BindingIdentifier.js'; import { type MapToResolvedValueInjectOptions } from './MapToResolvedValueInjectOptions.js'; export interface BoundServiceSyntax { getIdentifier(): BindingIdentifier; } export interface BindToFluentSyntax { to(type: Newable): BindInWhenOnFluentSyntax; toSelf(): BindInWhenOnFluentSyntax; toConstantValue(value: T): BindWhenOnFluentSyntax; toDynamicValue(builder: DynamicValueBuilder): BindInWhenOnFluentSyntax; toFactory(factory: T extends Factory ? (context: ResolutionContext) => T | Promise : never): BindWhenOnFluentSyntax; toResolvedValue(factory: () => T | Promise): BindInWhenOnFluentSyntax; toResolvedValue(factory: (...args: TArgs) => T | Promise, injectOptions: MapToResolvedValueInjectOptions): BindInWhenOnFluentSyntax; toService(service: ServiceIdentifier): void; } export interface BindInFluentSyntax extends BoundServiceSyntax { inSingletonScope(): BindWhenOnFluentSyntax; inTransientScope(): BindWhenOnFluentSyntax; inRequestScope(): BindWhenOnFluentSyntax; } export interface BindInWhenOnFluentSyntax extends BindInFluentSyntax, BindWhenOnFluentSyntax { } export interface BindOnFluentSyntax extends BoundServiceSyntax { onActivation(activation: BindingActivation): BindWhenFluentSyntax; onDeactivation(deactivation: BindingDeactivation): BindWhenFluentSyntax; } export interface BindWhenOnFluentSyntax extends BindWhenFluentSyntax, BindOnFluentSyntax { } export interface BindWhenFluentSyntax extends BoundServiceSyntax { when(constraint: (metadata: BindingConstraints) => boolean): BindOnFluentSyntax; whenAnyAncestor(constraint: (metadata: BindingConstraints) => boolean): BindOnFluentSyntax; whenAnyAncestorIs(serviceIdentifier: ServiceIdentifier): BindOnFluentSyntax; whenAnyAncestorNamed(name: MetadataName): BindOnFluentSyntax; whenAnyAncestorTagged(tag: MetadataTag, tagValue: unknown): BindOnFluentSyntax; whenDefault(): BindOnFluentSyntax; whenNamed(name: MetadataName): BindOnFluentSyntax; whenNoAncestor(constraint: (metadata: BindingConstraints) => boolean): BindOnFluentSyntax; whenNoAncestorIs(serviceIdentifier: ServiceIdentifier): BindOnFluentSyntax; whenNoAncestorNamed(name: MetadataName): BindOnFluentSyntax; whenNoAncestorTagged(tag: MetadataTag, tagValue: unknown): BindOnFluentSyntax; whenNoParent(constraint: (metadata: BindingConstraints) => boolean): BindOnFluentSyntax; whenNoParentIs(serviceIdentifier: ServiceIdentifier): BindOnFluentSyntax; whenNoParentNamed(name: MetadataName): BindOnFluentSyntax; whenNoParentTagged(tag: MetadataTag, tagValue: unknown): BindOnFluentSyntax; whenParent(constraint: (metadata: BindingConstraints) => boolean): BindOnFluentSyntax; whenParentIs(serviceIdentifier: ServiceIdentifier): BindOnFluentSyntax; whenParentNamed(name: MetadataName): BindOnFluentSyntax; whenParentTagged(tag: MetadataTag, tagValue: unknown): BindOnFluentSyntax; whenTagged(tag: MetadataTag, tagValue: unknown): BindOnFluentSyntax; } //# sourceMappingURL=BindingFluentSyntax.d.ts.map