import type { Logger as WinstonLogger } from 'winston';
import MerchantConfig from './MerchantConfig';
import type { MerchantConfigOptions, Stringable } from './MerchantConfig';
export declare class AuthenticationHeader {
    merchantConfig: MerchantConfig;
    constants: {
        POST: string;
        GET: string;
        PUT: string;
        DELETE: string;
        PATCH: string;
        HTTP_URL_PREFIX: string;
        HTTP: string;
        JWT: string;
        OAUTH: string;
        MUTUAL_AUTH: string;
        V_C_MERCHANTID: string;
        DATE: string;
        HOST: string;
        SIGNATURE: string;
        USERAGENT: string;
        USER_AGENT_VALUE: string;
        CONTENT_TYPE: string;
        APPLICATION_JSON: string;
        V_C_CORRELATION_ID: string;
        STATUS_INFORMATION: string;
        DIGEST: string;
        REQUEST_TYPE: string;
        OLD_RUN_ENVIRONMENT_CONSTANTS: string[];
        SIGNATURE_ALGORITHAM: string;
        HmacSHA256: string;
        BEGIN_TRANSACTION: string;
        END_TRANSACTION: string;
        MERCHANTID: string;
        MERCHANT_KEY_ID: string;
        MERCHANT_SECERT_KEY: string;
        REQUEST_BODY: string;
        RESPONSE_CODE: string;
        RESPONSE_MESSAGE: string;
        AUTHORIZATION: string;
        HideMerchantConfigProps: string;
        MASKING_DATA: string;
        PROXY_PREFIX: string;
        FILE_NOT_FOUND: string;
        AUTH_ERROR: string;
        KEY_ALIAS_NULL_EMPTY: string;
        REQUEST_JSON_ERROR: string;
        KEY_FILE_EMPTY: string;
        REFER_LOG: string;
        MERCHANTID_REQ: string;
        INCORRECT_KEY_ALIAS: string;
        INCORRECT_KEY_PASS: string;
        AUTHENTICATION_REQ: string;
        MERCHANT_KEY_ID_REQ: string;
        PORTFOLIO_ID_REQ: string;
        RUN_ENVIRONMENT_REQ: string;
        MERCHANT_SECRET_KEY_REQ: string;
        KEY_PASS_EMPTY: string;
        KEY_DIRECTORY_EMPTY: string;
        REQUEST_JSON_EMPTY: string;
        INVALID_LOGDIRECTORY: string;
        INVALID_REQUEST_TYPE_METHOD: string;
        DEPRECATED_RUN_ENVIRONMENT: string;
        ENABLE_CLIENT_CERT_EMPTY: string;
        CLIENT_CERT_DIR_EMPTY: string;
        SSL_CLIENT_CERT_EMPTY: string;
        PRIVATE_KEY_EMPTY: string;
        CLIENT_ID_EMPTY: string;
        CLIENT_SECRET_EMPTY: string;
        ACCESS_TOKEN_EMPTY: string;
        REFRESH_TOKEN_EMPTY: string;
        DEFAULT_LOG_SIZE: string;
        DEFAULT_PROXY_ADDRESS: string;
        DEFAULT_PROXY_PORT: string;
        DEFAULT_TIMEOUT: number;
        DEFAULT_LOG_DIRECTORY: string;
        DEFAULT_KEYS_DIRECTORY: string;
        DEFAULT_LOG_FILENAME: string;
        DEFAULT_MAX_LOG_FILES: string;
        DEFAULT_LOGGING_LEVEL: string;
        STATUS200: string;
        STATUS400: string;
        STATUS401: string;
        STATUS403: string;
        STATUS404: string;
        STATUS500: string;
        STATUS502: string;
        STATUS503: string;
        STATUS504: string;
    };
    basePath: string;
    logger: WinstonLogger;
    /**
     * This method will set the merchantConfig object global
     * @param configObject merchantConfiguration properties.
     */
    setConfiguration(configObject: MerchantConfigOptions): void;
    /**
     * This method is to generate headers for http and jwt authentication.
     */
    callAuthenticationHeader(httpMethod: string, requestTarget: string, requestBody: string, headerParams: any): any;
    /**
     * Build request target required for the signature generation
     */
    buildRequestTarget(path: string, pathParams: Record<string, string | null>, queryParams: Record<string, string | null>): string;
    /**
     * Returns a string representation for an actual parameter.
     * @param param The actual parameter.
     * @returns The string representation of <code>param</code>.
     */
    paramToString(param: null | undefined | Date | Stringable): string;
}
