export declare function api(description?: ApiDescription): (constructor: Function) => void; export interface ApiDescription { } export declare function endpoint(description: EndpointDescription): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export interface EndpointDescription { method: HttpMethod; path: string; requestContentType?: HttpContentType; successStatusCode?: number; } export declare function genericError(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function specificError(description: ErrorDescription): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export interface ErrorDescription { name: string; statusCode: number; } export declare function isHttpMethod(method: string): method is HttpMethod; export declare function isHttpContentType(contentType: string): contentType is HttpContentType; export declare type HttpContentType = "application/json" | "text/html"; export declare type HttpMethod = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH"; export declare function request(target: any, propertyKey: string, parameterIndex: number): void; export declare function pathParam(target: any, propertyKey: string, parameterIndex: number): void; export declare function header(description: HeaderDescription): (target: any, propertyKey: string, parameterIndex: number) => void; export interface HeaderDescription { name: string; } export declare type Optional = T | void;