import type { AnyAsyncMiddleware, MiddlewareAsync, MiddlewarePromise, MiddlewareResult, OptionsResponse, SpecialNextParam } from './shared.js'; export interface ExtendableCompositeMiddlewareAsync { } /** * A class representing a composite middleware that handles asynchronous operations. */ export declare class MiddlewareCompositeAsync implements MiddlewareAsync, ExtendableCompositeMiddlewareAsync { readonly name?: string; /** * Creates an instance of MiddlewareCompositeAsync. * @param {string} [name] - The name of the middleware composite. */ constructor(name?: string); /** * Creates a new MiddlewareCompositeAsync instance with the provided middlewares. * @param {...AnyAsyncMiddleware[]} middlewares - The middlewares to be used. * @returns {MiddlewareCompositeAsync} A new MiddlewareCompositeAsync instance. */ static new(...middlewares: AnyAsyncMiddleware[]): MiddlewareCompositeAsync; private readonly stack; /** * Adds middlewares to the stack. * @param {...AnyAsyncMiddleware[]} middlewares - The middlewares to be added. * @returns {this} The current instance of MiddlewareCompositeAsync. */ useMiddleware(...middlewares: AnyAsyncMiddleware[]): this; /** * Adds standard middlewares to the stack. * @param {...((...args: T) => Promise)[]} middlewares - The standard middlewares to be added. * @returns {this} The current instance of MiddlewareCompositeAsync. */ use(...middlewares: ((...args: T) => Promise)[]): this; /** * Adds error middlewares to the stack. * @param {...((error: Error | OptionsResponse, ...args: T) => Promise)[]} middlewares - The error middlewares to be added. * @returns {this} The current instance of MiddlewareCompositeAsync. */ useError(...middlewares: ((error: Error | OptionsResponse, ...args: T) => Promise)[]): this; /** * Processes the request and returns a promise. * @param {...T} req - The request parameters. * @returns {Promise} A promise that resolves or rejects based on the middleware processing. */ process(...req: T): Promise; /** * Handles errors in the middleware stack. * @param {MiddlewareResult} error - The error to be handled. * @param {...T} req - The request parameters. * @returns {MiddlewarePromise} A promise that resolves or rejects based on the error handling. */ handleError(error: MiddlewareResult, ...req: T): MiddlewarePromise; /** * Handles the middleware stack. * @param {...T} req - The request parameters. * @returns {MiddlewarePromise} A promise that resolves or rejects based on the middleware processing. */ handle(...req: T): MiddlewarePromise; }