import { HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
import { RestHttpHeaders, RestMiddleware } from '../interfaces';
import type { RESTClientBase } from '../misc/classes/restClientBase';
/**
 * Middleware that is used for setting custom http headers
 */
export declare class HeadersMiddleware implements RestMiddleware<unknown, unknown, RestHttpHeaders> {
    /**
     * 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: unknown, _methodName: string, descriptor: RestHttpHeaders, _args: unknown[], request: HttpRequest<unknown>, next: (request: HttpRequest<unknown>) => Observable<unknown>): Observable<unknown>;
}
//# sourceMappingURL=headers.middleware.d.ts.map