import type { IArtifactMetadata, IArtifactRegistrationOptions, TBindingScope } from '../../helpers/inversion/index.js'; /** The root stereotype: marks a class as an artifact the application registers, with its registration defaults. Every other stereotype calls it. */ export declare const injectable: (opts: IArtifactMetadata) => ClassDecorator; export declare const service: (opts?: IArtifactRegistrationOptions) => ClassDecorator; export declare const component: (opts?: IArtifactRegistrationOptions) => ClassDecorator; export declare const configuration: (opts?: IArtifactRegistrationOptions) => ClassDecorator; /** Marks a component method as the provider of `key`. `registerArtifacts` binds the key to a lazy provider that resolves the component and calls the method; SINGLETON unless `scope` says otherwise. */ export declare const provide: (opts: { key: string; scope?: TBindingScope; }) => MethodDecorator; /** The registration defaults a stereotype forwards to `@injectable`, copied field by field so an absent option stays absent. */ export declare const pickRegistrationOptions: (opts: { metadata: IArtifactRegistrationOptions; }) => IArtifactRegistrationOptions; //# sourceMappingURL=injectable.d.ts.map