import type { ProviderOpts } from "../interfaces/ProviderOpts.js"; import type { TokenProvider } from "../interfaces/TokenProvider.js"; /** * Fluent builder for registering providers programmatically. * * Creates or configures a provider with the specified options. * Can be chained with additional configuration methods. * * ### Usage * * ```typescript * import {injectable} from "@tsed/di"; * * injectable(MyService) * .scope(ProviderScope.REQUEST) * .deps([DatabaseService]) * .build(); * * // With factory * injectable("CONFIG") * .factory(() => loadConfig()) * .build(); * ``` * * @public */ export declare const injectable: { (token: Token, options?: Partial): TsED.ClassProviderBuilder; (token: Token, options?: Partial): TsED.ProviderBuilder; }; /** * Fluent builder for registering interceptor providers. * * Specialized version of `injectable` that automatically sets the provider type to `INTERCEPTOR`. * * ### Usage * * ```typescript * import {interceptor} from "@tsed/di"; * * interceptor(LogInterceptor).build(); * ``` * * @public */ export declare const interceptor: { (token: Token, options?: Partial): TsED.ClassProviderBuilder; (token: Token, options?: Partial): TsED.ProviderBuilder; }; /** * Fluent builder for registering controller providers. * * Specialized version of `injectable` that automatically sets the provider type to `CONTROLLER` * and supports controller-specific options like middlewares. * * ### Usage * * ```typescript * import {controller} from "@tsed/di"; * * controller(UsersController) * .middlewares({useBefore: [AuthMiddleware]}) * .build(); * ``` * * @public */ export declare const controller: { (token: Token, options?: Partial): TsED.ClassProviderBuilder; (token: Token, options?: Partial): TsED.ProviderBuilder; }; type Opts = Partial> & ({ token: TokenProvider; } | { /** * @deprecated use token prop instead */ provide: TokenProvider; }); /** * Register a provider configuration. * @deprecated Since v8. Use injectable() function instead. */ export declare function registerProvider({ token, provide, ...opts }: Opts): import("../index.js").Provider; export {};