import type { StrictOmit, Type, TypeThunkAsync } from 'ts-gems'; import type { HttpController } from '../http/http-controller.js'; import type { HttpParameter } from '../http/http-parameter.js'; export interface HttpControllerDecorator = HttpControllerDecorator> extends ClassDecorator { Cookie(name: string | RegExp, optionsOrType?: StrictOmit | string | Type | false): T; Header(name: string | RegExp, optionsOrType?: StrictOmit | string | TypeThunkAsync | false): T; QueryParam(name: string | RegExp, optionsOrType?: StrictOmit | string | TypeThunkAsync | false): T; PathParam(name: string | RegExp, optionsOrType?: StrictOmit | string | TypeThunkAsync | false): T; KeyParam(name: string | RegExp, optionsOrType?: StrictOmit | string | TypeThunkAsync | false): T; UseType(...type: TypeThunkAsync[]): T; } export interface HttpControllerDecoratorFactory { (options?: T): HttpControllerDecorator; } export declare function HttpControllerDecoratorFactory(options?: O): HttpControllerDecorator;