import type { HttpMiddleware } from "@egomobile/http-server"; import type { AnySchema } from "joi"; import type { Schema } from "../types/index.js"; import type { ClassMethodDecorator5 } from "../types/internal.js"; import type { HttpMethodDecoratorRoutePath, IHttpMethodDecoratorOptions } from "./index.js"; /** * Returns a decorator, that sets up an endpoint for a POST request. * * @example * ``` * import { Controller, POST, IHttp1Request, IHttp1Response } from "@egomobile/http-controllers"; * * @Controller() * export default class MyController { * @POST('/') * public async postSomething(request: IHttp1Request, response: IHttp1Response) { * // ... * } * } * ``` * * @param {IHttpMethodDecoratorOptions} [options] The custom options. * @param {HttpMethodDecoratorRoutePath} [path] The custom path. * @param {AnySchema|Schema} [schema] The schema for the validation. * @param {HttpMiddleware[]} [use] Additional middlewares to use. * * @returns {MethodDecorator} The new decorator. */ export declare function POST(): ClassMethodDecorator5; export declare function POST(schema: AnySchema): ClassMethodDecorator5; export declare function POST(options: IHttpMethodDecoratorOptions): ClassMethodDecorator5; export declare function POST(use: HttpMiddleware[]): ClassMethodDecorator5; export declare function POST(path: HttpMethodDecoratorRoutePath): ClassMethodDecorator5; export declare function POST(path: HttpMethodDecoratorRoutePath, use: HttpMiddleware[]): ClassMethodDecorator5; export declare function POST(path: HttpMethodDecoratorRoutePath, schema: Schema): ClassMethodDecorator5;