/**
 * 한국투자증권 EFriendExpert REST API
 *
 * @file packages/EFriendExpert/efriends/efriendRest.ts
 * @version 0.0.1
 * @license GNU General Public License v3.0
 * @copyright 2017~2023, EFriendExport Community Team
 * @author gye hyun james kim <pnuskgh@gmail.com>
 */
import { Secret, EFriendRestConfig } from './efriend.type.js';
export declare class EFriendRestBase {
    private readonly logger;
    constructor({ logger }: EFriendRestConfig);
    /**
     * requestHeader를 재설정하여 반환 한다.
     *
     * @param {any} secret                                  인증 정보
     * @param {string} trid                                 트랜잭션 ID
     * @param {any} requestHeader                           요청 header
     * @param {any} requestBody                             요청 body
     * @param {any} responseHeader                          응답 header
     * @returns {any}                                       재설정된 요청 header
     * @throws {any}
     */
    private resetRequestHeader;
    /**
     * data의 값을 검사 한다.
     *
     * @param {string} trid                                 트랜잭션 ID
     * @param {Array<TRID_FIELD>} fields                    필드 목록
     * @param {any} data                                    검사할 데이터 객체
     * @throws {any}
     */
    private checkData;
    /**
     * 필드의 값을 검사 한다.
     *
     * @param {TRID_FIELD} field                            필드 정보
     * @param {any} data                                    field의 값을 포함하는 object
     * @param {string} trid                                 tr_id
     * @param {boolean} allowException                      true. Exception 허용
     * @throws {any}
     */
    private checkField;
    /**
     * Response Header에서 필드 설정과 실제 데이터의 필드 항목을 비교 한다.
     *
     * @param {Array<TRID_FIELD>} fields                    Fields의 메타 정보
     * @param {any} data                                    Response Header 데이터
     * @param {string} trid                                 tr_id
     */
    private compareWithMeta;
    /**
     * Response data의 값을 검사 한다.
     *
     * @param {string} trid                                 트랜잭션 ID
     * @param {Array<TRID_FIELD>} fields                    필드 목록
     * @param {any} data                                    검사할 데이터 객체
     * @throws {any}
     */
    private checkResponsebody;
    /**
     * 한국투자증권 EFriendExpert의 REST API
     * @description 한국투자증권 EFriendExpert의 REST API를 호출하고 결과를 반환 한다.
     *
     * @param {Secret} secret                               인증 정보
     * @param {string} trid                                 트랜잭션 ID
     * @param {any} requestHeader                           요청 header
     * @param {any} requestBody                             요청 body
     * @param {any} responseHeader                          응답 header
     * @returns {BaseError}
     */
    request(secret: Secret, trid: string, requestHeader: any, requestBody: any, responseHeader?: any | null): Promise<any>;
}
export default EFriendRestBase;
//# sourceMappingURL=efriendRestBase.d.ts.map