import type { BuildResolver, BuildResolverOptions, DisposableResolver } from 'awilix';
declare module 'awilix' {
    interface ResolverOptions<T> {
        /** Marks a resolver as an api controller (new ApiContract-based). */
        isApiController?: boolean;
    }
}
/**
 * Register an `AbstractApiController` subclass with the awilix DI container.
 *
 * The returned resolver does **not** set `isSSEController` or `isDualModeController`,
 * so `DIContext` reads its `routes` property automatically during `registerRoutes()`.
 *
 * @example
 * ```typescript
 * // In a module's resolveControllers():
 * return {
 *   userController: asApiControllerClass(UserController),
 * }
 * ```
 */
export declare function asApiControllerClass<T = object>(Type: {
    prototype: T;
}, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>;
