import { IApiKeyAuthorization, IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization, IPassThroughAuthorization, IRamlCustomAuthorization } from '../../models/Authorization.js';
import { IRequestAuthorization, RequestAuthorization } from '../../models/RequestAuthorization.js';
import { IHttpRequest } from '../../models/HttpRequest.js';
import { HttpCertificate } from '../../models/ClientCertificate.js';
export interface IAuthApplyOptions {
    /**
     * When set it won't change the originating authorization objects.
     * By default it sets the authorization's `enabled` property to `false` after applying the
     * value to the request.
     */
    immutable?: boolean;
}
export declare class SecurityProcessor {
    /**
     * Applies authorization configuration to the request object.
     */
    static applyAuthorization(request: IHttpRequest, authorization?: (IRequestAuthorization | RequestAuthorization)[], opts?: IAuthApplyOptions): void;
    /**
     * Injects basic auth header into the request headers.
     */
    static applyBasicAuth(request: IHttpRequest, config: IBasicAuthorization): void;
    /**
     * Injects oauth 2 auth header into the request headers.
     */
    static applyOAuth2(request: IHttpRequest, config: IOAuth2Authorization): void;
    /**
     * Injects OpenID Connect auth header into the request headers.
     */
    static applyOpenId(request: IHttpRequest, config: IOidcAuthorization): void;
    /**
     * Injects bearer auth header into the request headers.
     */
    static applyBearer(request: IHttpRequest, config: IBearerAuthorization): void;
    /**
     * Injects the RAML custom configuration into the request
     */
    static applyCustomAuth(request: IHttpRequest, config: IRamlCustomAuthorization): void;
    /**
     * Injects the ApiKey configuration into the request
     */
    static applyApiKeys(request: IHttpRequest, config: IApiKeyAuthorization): void;
    /**
     * Injects the PassThrough configuration into the request
     */
    static applyPassThrough(request: IHttpRequest, config: IPassThroughAuthorization): void;
    static applyHeader(request: IHttpRequest, name: string, value: string): void;
    /**
     * Applies a map of query parameters to the request object.
     * @param request The request object
     * @param params A map of query parameters to apply to the request
     */
    static applyQueryParams(request: IHttpRequest, params?: Record<string, string>): void;
    /**
     * Applies a map of headers to the request object.
     * @param request The request object
     * @param headers A map of headers to apply to the request
     */
    static applyHeaders(request: IHttpRequest, headers?: Record<string, string>): void;
    /**
     * Reads the client certificate from the authorization configuration.
     *
     * @param authorization The HTTP request authorization configuration.
     * @returns The certificate to use with the HTTP request or undefined when not configured.
     */
    static readCertificate(authorization?: IRequestAuthorization[]): HttpCertificate | undefined;
}
//# sourceMappingURL=SecurityProcessor.d.ts.map