import { HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
import { RestMiddleware, RestParameters } from '../interfaces';
import type { RESTClientBase } from '../misc/classes/restClientBase';
/**
 * Middleware that is used for adding query string from query object
 */
export declare class QueryObjectParameterMiddleware implements RestMiddleware<unknown, unknown, unknown, RestParameters> {
    /**
     * String identification of middleware
     */
    static id: string;
    /**
     * Runs code that is defined for this rest middleware, in this method you can modify request and response
     * @param this - Method is bound to RESTClient
     * @param id - Unique id that identifies request method
     * @param target - Prototype of class that are decorators applied to
     * @param methodName - Name of method that is being modified
     * @param descriptor - Descriptor of method that is being modified
     * @param args - Array of arguments passed to called method
     * @param request - Http request that you can modify
     * @param next - Used for calling next middleware with modified request
     */
    run(this: RESTClientBase, _id: string, target: RestParameters, methodName: string, _descriptor: unknown, args: unknown[], request: HttpRequest<unknown>, next: (request: HttpRequest<unknown>) => Observable<unknown>): Observable<unknown>;
}
//# sourceMappingURL=queryObjectParameter.middleware.d.ts.map