import { IJsSchema, SimpleType } from 'luren-schema'; import 'reflect-metadata'; import { ParamSource } from '../constants/ParamSource'; import { GenericType } from '../lib/GenericType'; export declare type Source = 'query' | 'path' | 'header' | 'body' | 'session' | 'request' | 'context' | 'next'; declare type ParamDecorator = (target: object, propertyKey: string, index: number) => void; export interface IParamOptions { name?: string; in?: Source; type?: SimpleType | GenericType; schema?: IJsSchema; required?: boolean; desc?: string; root?: boolean; format?: string; mime?: string; default?: any; example?: any; } export declare class ParamMetadata { name: string; source: Source; type?: SimpleType | GenericType; schema?: IJsSchema; required?: boolean; root: boolean; format?: string; mime?: string; desc?: string; default: any; example?: any; constructor(name: string, source: Source, required?: boolean); } export declare function Param(options: IParamOptions): (target: object, propertyKey: string, index: number) => void; export declare function InQuery(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InQuery(name: string, required?: boolean): ParamDecorator; export declare function InPath(name: string, type?: SimpleType | GenericType): (target: object, propertyKey: string, index: number) => void; export declare function InHeader(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InHeader(name: string, required?: boolean): ParamDecorator; export declare function InBody(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InBody(name: string, required?: boolean): ParamDecorator; export declare function InRequest(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InRequest(name: string, required?: boolean): ParamDecorator; export declare function InSession(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InSession(name: string, required?: boolean): ParamDecorator; export declare function InContext(name: string, type: SimpleType | GenericType, required?: boolean): ParamDecorator; export declare function InContext(name: string, required?: boolean): ParamDecorator; export declare function Query(): (target: object, propertyKey: string, index: number) => void; export declare function Context(): (target: object, propertyKey: string, index: number) => void; export declare function Request(): (target: object, propertyKey: string, index: number) => void; export declare function Session(): (target: object, propertyKey: string, index: number) => void; export declare function Body(type?: SimpleType): (target: object, propertyKey: string, index: number) => void; export declare function Next(): (target: object, propertyKey: string, index: number) => void; export declare function inSource(source: ParamSource): (...args: any[]) => (target: object, propertyKey: string, index: number) => void; export {};