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 PUT request. * * @example * ``` * import { Controller, PUT, IHttp1Request, IHttp1Response } from "@egomobile/http-controllers"; * * @Controller() * export default class MyController { * @PUT('/') * public async putSomething(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 PUT(): ClassMethodDecorator5; export declare function PUT(schema: AnySchema): ClassMethodDecorator5; export declare function PUT(options: IHttpMethodDecoratorOptions): ClassMethodDecorator5; export declare function PUT(use: HttpMiddleware[]): ClassMethodDecorator5; export declare function PUT(path: HttpMethodDecoratorRoutePath): ClassMethodDecorator5; export declare function PUT(path: HttpMethodDecoratorRoutePath, use: HttpMiddleware[]): ClassMethodDecorator5; export declare function PUT(path: HttpMethodDecoratorRoutePath, schema: Schema): ClassMethodDecorator5;