import type { TypeThunkAsync } from 'ts-gems'; import type { MQController } from '../mq/mq-controller.js'; import type { MQHeader } from '../mq/mq-header.js'; export interface MQControllerDecorator = MQControllerDecorator> extends ClassDecorator { Header(name: string | RegExp, optionsOrType?: MQHeader.Options | string | TypeThunkAsync | false): T; UseType(...type: TypeThunkAsync[]): T; } export interface MQControllerDecoratorFactory { (options?: T): MQControllerDecorator; } /** * @namespace MQControllerDecoratorFactory */ export declare namespace MQControllerDecoratorFactory { type AugmentationFunction = (decorator: MQControllerDecorator, decoratorChain: Function[], options?: MQController.Options) => void; } export declare function MQControllerDecoratorFactory(options?: O): MQControllerDecorator; export declare namespace MQControllerDecoratorFactory { var augment: (fn: MQControllerDecoratorFactory.AugmentationFunction) => void; }