import { PaymentError } from "./PaymentError.js";
import type { Unrecognized } from "./../../utils/unrecognized.js";
import { type PortOneClientInit } from "../../client.js";
import { BillingKeyClient } from "./billingKey/client.js";
import { CashReceiptClient } from "./cashReceipt/client.js";
import { PaymentScheduleClient } from "./paymentSchedule/client.js";
import { PromotionClient } from "./promotion/client.js";
import type { AlreadyPaidError } from "../../generated/payment/AlreadyPaidError.js";
import type { ApplyEscrowLogisticsResponse } from "../../generated/payment/ApplyEscrowLogisticsResponse.js";
import type { BillingKeyAlreadyDeletedError } from "../../generated/common/BillingKeyAlreadyDeletedError.js";
import type { BillingKeyNotFoundError } from "../../generated/common/BillingKeyNotFoundError.js";
import type { CancelAmountExceedsCancellableAmountError } from "../../generated/payment/CancelAmountExceedsCancellableAmountError.js";
import type { CancelPaymentBodyRefundAccount } from "../../generated/payment/CancelPaymentBodyRefundAccount.js";
import type { CancelPaymentResponse } from "../../generated/payment/CancelPaymentResponse.js";
import type { CancelRequester } from "../../generated/payment/CancelRequester.js";
import type { CancelTaxAmountExceedsCancellableTaxAmountError } from "../../generated/payment/CancelTaxAmountExceedsCancellableTaxAmountError.js";
import type { CancelTaxFreeAmountExceedsCancellableTaxFreeAmountError } from "../../generated/payment/CancelTaxFreeAmountExceedsCancellableTaxFreeAmountError.js";
import type { CancellableAmountConsistencyBrokenError } from "../../generated/payment/CancellableAmountConsistencyBrokenError.js";
import type { CashReceiptInput } from "../../generated/common/CashReceiptInput.js";
import type { ChannelNotFoundError } from "../../generated/common/ChannelNotFoundError.js";
import type { CloseVirtualAccountResponse } from "../../generated/payment/CloseVirtualAccountResponse.js";
import type { ConfirmEscrowResponse } from "../../generated/payment/ConfirmEscrowResponse.js";
import type { Country } from "../../generated/common/Country.js";
import type { Currency } from "../../generated/common/Currency.js";
import type { CustomerInput } from "../../generated/common/CustomerInput.js";
import type { DiscountAmountExceedsTotalAmountError } from "../../generated/payment/DiscountAmountExceedsTotalAmountError.js";
import type { ForbiddenError } from "../../generated/common/ForbiddenError.js";
import type { GetAllPaymentsByCursorResponse } from "../../generated/payment/GetAllPaymentsByCursorResponse.js";
import type { GetPaymentTransactionsResponse } from "../../generated/payment/GetPaymentTransactionsResponse.js";
import type { GetPaymentsResponse } from "../../generated/payment/GetPaymentsResponse.js";
import type { InstantPaymentMethodInput } from "../../generated/payment/InstantPaymentMethodInput.js";
import type { InvalidRequestError } from "../../generated/common/InvalidRequestError.js";
import type { Locale } from "../../generated/common/Locale.js";
import type { MaxTransactionCountReachedError } from "../../generated/common/MaxTransactionCountReachedError.js";
import type { MaxWebhookRetryCountReachedError } from "../../generated/payment/MaxWebhookRetryCountReachedError.js";
import type { ModifyEscrowLogisticsResponse } from "../../generated/payment/ModifyEscrowLogisticsResponse.js";
import type { NegativePromotionAdjustedCancelAmountError } from "../../generated/payment/NegativePromotionAdjustedCancelAmountError.js";
import type { PageInput } from "../../generated/common/PageInput.js";
import type { PayInstantlyResponse } from "../../generated/payment/PayInstantlyResponse.js";
import type { PayWithBillingKeyResponse } from "../../generated/payment/PayWithBillingKeyResponse.js";
import type { Payment } from "../../generated/payment/Payment.js";
import type { PaymentAlreadyCancelledError } from "../../generated/payment/PaymentAlreadyCancelledError.js";
import type { PaymentAmountInput } from "../../generated/common/PaymentAmountInput.js";
import type { PaymentEscrowReceiverInput } from "../../generated/payment/PaymentEscrowReceiverInput.js";
import type { PaymentEscrowSenderInput } from "../../generated/payment/PaymentEscrowSenderInput.js";
import type { PaymentFilterInput } from "../../generated/payment/PaymentFilterInput.js";
import type { PaymentLogistics } from "../../generated/payment/PaymentLogistics.js";
import type { PaymentNotFoundError } from "../../generated/payment/PaymentNotFoundError.js";
import type { PaymentNotPaidError } from "../../generated/payment/PaymentNotPaidError.js";
import type { PaymentNotWaitingForDepositError } from "../../generated/payment/PaymentNotWaitingForDepositError.js";
import type { PaymentProduct } from "../../generated/common/PaymentProduct.js";
import type { PaymentProductType } from "../../generated/common/PaymentProductType.js";
import type { PaymentScheduleAlreadyExistsError } from "../../generated/common/PaymentScheduleAlreadyExistsError.js";
import type { PgProviderError } from "../../generated/common/PgProviderError.js";
import type { PreRegisterPaymentResponse } from "../../generated/payment/PreRegisterPaymentResponse.js";
import type { PromotionDiscountRetainOption } from "../../generated/payment/PromotionDiscountRetainOption.js";
import type { PromotionDiscountRetainOptionShouldNotBeChangedError } from "../../generated/payment/PromotionDiscountRetainOptionShouldNotBeChangedError.js";
import type { PromotionPayMethodDoesNotMatchError } from "../../generated/payment/PromotionPayMethodDoesNotMatchError.js";
import type { RegisterStoreReceiptBodyItem } from "../../generated/payment/RegisterStoreReceiptBodyItem.js";
import type { RegisterStoreReceiptResponse } from "../../generated/payment/RegisterStoreReceiptResponse.js";
import type { ResendWebhookResponse } from "../../generated/payment/ResendWebhookResponse.js";
import type { SeparatedAddressInput } from "../../generated/common/SeparatedAddressInput.js";
import type { SumOfPartsExceedsCancelAmountError } from "../../generated/payment/SumOfPartsExceedsCancelAmountError.js";
import type { SumOfPartsExceedsTotalAmountError } from "../../generated/common/SumOfPartsExceedsTotalAmountError.js";
import type { UnauthorizedError } from "../../generated/common/UnauthorizedError.js";
import type { WebhookNotFoundError } from "../../generated/payment/WebhookNotFoundError.js";
/**
 * 포트원 API 클라이언트를 생성합니다.
 */
export declare function PaymentClient(init: PortOneClientInit): PaymentClient;
export type PaymentClient = {
    /**
     * 결제 대용량 다건 조회(커서 기반)
     *
     * 기간 내 모든 결제 건을 커서 기반으로 조회합니다. 결제 건의 생성일시를 기준으로 주어진 기간 내 존재하는 모든 결제 건이 조회됩니다.
     *
     * @throws {@link GetAllPaymentsError}
     */
    getAllPaymentsByCursor: (options?: {
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 결제 건 생성시점 범위 조건의 시작
         *
         * 값을 입력하지 않으면 end의 90일 전으로 설정됩니다.
         * (RFC 3339 date-time)
         */
        from?: string;
        /**
         * 결제 건 생성시점 범위 조건의 끝
         *
         * 값을 입력하지 않으면 현재 시점으로 설정됩니다.
         * (RFC 3339 date-time)
         */
        until?: string;
        /**
         * 커서
         *
         * 결제 건 리스트 중 어디서부터 읽어야 할지 가리키는 값입니다. 최초 요청일 경우 값을 입력하지 마시되, 두번째 요청 부터는 이전 요청 응답값의 cursor를 입력해주시면 됩니다.
         */
        cursor?: string;
        /**
         * 페이지 크기
         *
         * 미입력 시 기본값은 10 이며 최대 1000까지 허용
         * (int32)
         */
        size?: number;
    }) => Promise<GetAllPaymentsByCursorResponse>;
    /**
     * 빌링키 결제
     *
     * 빌링키로 결제를 진행합니다.
     *
     * @throws {@link PayWithBillingKeyError}
     */
    payWithBillingKey: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /** 빌링키 결제에 사용할 빌링키 */
        billingKey: string;
        /**
         * 채널 키
         *
         * 다수 채널에 대해 발급된 빌링키에 대해, 결제 채널을 특정하고 싶을 때 명시
         */
        channelKey?: string;
        /** 주문명 */
        orderName: string;
        /** 고객 정보 */
        customer?: CustomerInput;
        /** 사용자 지정 데이터 */
        customData?: string;
        /** 결제 금액 세부 입력 정보 */
        amount: PaymentAmountInput;
        /** 통화 */
        currency: Currency;
        /**
         * 할부 개월 수
         * (int32)
         */
        installmentMonth?: number;
        /** 무이자 할부 이자를 고객사가 부담할지 여부 */
        useFreeInterestFromMerchant?: boolean;
        /** 카드 포인트 사용 여부 */
        useCardPoint?: boolean;
        /** 현금영수증 정보 */
        cashReceipt?: CashReceiptInput;
        /** 결제 국가 */
        country?: Country;
        /**
         * 웹훅 주소
         *
         * 결제 승인/실패 시 요청을 받을 웹훅 주소입니다.
         * 상점에 설정되어 있는 값보다 우선적으로 적용됩니다.
         * 입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
         */
        noticeUrls?: string[];
        /**
         * 상품 정보
         *
         * 입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
         */
        products?: PaymentProduct[];
        /**
         * 상품 개수
         * (int32)
         */
        productCount?: number;
        /** 상품 유형 */
        productType?: PaymentProductType;
        /** 배송지 주소 */
        shippingAddress?: SeparatedAddressInput;
        /** 해당 결제에 적용할 프로모션 아이디 */
        promotionId?: string;
        /**
         * 결제 시 사용할 언어
         *
         * 엑심베이의 경우 필수 입력입니다.
         */
        locale?: Locale;
        /** PG사별 추가 파라미터 ("PG사별 연동 가이드" 참고) */
        bypass?: object;
    }) => Promise<PayWithBillingKeyResponse>;
    /**
     * 결제 취소
     *
     * 결제 취소를 요청합니다.
     *
     * @throws {@link CancelPaymentError}
     */
    cancelPayment: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 취소 총 금액
         *
         * 값을 입력하지 않으면 전액 취소됩니다.
         * (int64)
         */
        amount?: number;
        /**
         * 취소 금액 중 면세 금액
         *
         * 값을 입력하지 않으면 전액 과세 취소됩니다.
         * (int64)
         */
        taxFreeAmount?: number;
        /**
         * 취소 금액 중 부가세액
         *
         * 값을 입력하지 않으면 자동 계산됩니다.
         * (int64)
         */
        vatAmount?: number;
        /** 취소 사유 */
        reason: string;
        /**
         * 취소 요청자
         *
         * 고객에 의한 취소일 경우 Customer, 관리자에 의한 취소일 경우 Admin으로 입력합니다.
         */
        requester?: CancelRequester;
        /**
         * 프로모션 할인율 유지 옵션
         *
         * 프로모션이 적용된 결제를 부분 취소하는 경우, 최초 할인율을 유지할지 여부를 선택할 수 있습니다.
         * RETAIN 으로 설정 시, 최초 할인율을 유지할 수 있도록 취소 금액이 조정됩니다.
         * RELEASE 으로 설정 시, 취소 후 남은 금액이 속한 구간에 맞게 프로모션 할인이 새롭게 적용됩니다.
         * 값을 입력하지 않으면 RELEASE 로 취급합니다.
         */
        promotionDiscountRetainOption?: PromotionDiscountRetainOption;
        /**
         * 결제 건의 취소 가능 잔액
         *
         * 본 취소 요청 이전의 취소 가능 잔액으로써, 값을 입력하면 잔액이 일치하는 경우에만 취소가 진행됩니다. 값을 입력하지 않으면 별도의 검증 처리를 수행하지 않습니다.
         * (int64)
         */
        currentCancellableAmount?: number;
        /**
         * 환불 계좌
         *
         * 계좌 환불일 경우 입력합니다. 계좌 환불이 필요한 경우는 가상계좌 환불, 휴대폰 익월 환불 등이 있습니다.
         */
        refundAccount?: CancelPaymentBodyRefundAccount;
    }) => Promise<CancelPaymentResponse>;
    /**
     * 에스크로 구매 확정
     *
     * 에스크로 결제를 구매 확정 처리합니다
     *
     * @throws {@link ConfirmEscrowError}
     */
    confirmEscrow: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 확인 주체가 상점인지 여부
         *
         * 구매확정요청 주체가 고객사 관리자인지 구매자인지 구분하기 위한 필드입니다.
         * 네이버페이 전용 파라미터이며, 구분이 모호한 경우 고객사 관리자(true)로 입력합니다.
         */
        fromStore?: boolean;
    }) => Promise<ConfirmEscrowResponse>;
    /**
     * 에스크로 배송 정보 등록
     *
     * 에스크로 배송 정보를 등록합니다.
     *
     * @throws {@link ApplyEscrowLogisticsError}
     */
    applyEscrowLogistics: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /** 에스크로 발송자 정보 */
        sender?: PaymentEscrowSenderInput;
        /** 에스크로 수취인 정보 */
        receiver?: PaymentEscrowReceiverInput;
        /** 에스크로 물류 정보 */
        logistics: PaymentLogistics;
        /**
         * 이메일 알림 전송 여부
         *
         * 에스크로 구매 확정 시 이메일로 알림을 보낼지 여부입니다.
         */
        sendEmail?: boolean;
        /** 상품 정보 */
        products?: PaymentProduct[];
    }) => Promise<ApplyEscrowLogisticsResponse>;
    /**
     * 에스크로 배송 정보 수정
     *
     * 에스크로 배송 정보를 수정합니다.
     *
     * @throws {@link ModifyEscrowLogisticsError}
     */
    modifyEscrowLogistics: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /** 에스크로 발송자 정보 */
        sender?: PaymentEscrowSenderInput;
        /** 에스크로 수취인 정보 */
        receiver?: PaymentEscrowReceiverInput;
        /** 에스크로 물류 정보 */
        logistics: PaymentLogistics;
        /**
         * 이메일 알림 전송 여부
         *
         * 에스크로 구매 확정 시 이메일로 알림을 보낼지 여부입니다.
         */
        sendEmail?: boolean;
        /** 상품 정보 */
        products?: PaymentProduct[];
    }) => Promise<ModifyEscrowLogisticsResponse>;
    /**
     * 수기 결제
     *
     * 수기 결제를 진행합니다.
     *
     * @throws {@link PayInstantlyError}
     */
    payInstantly: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 채널 키
         *
         * 채널 키 또는 채널 그룹 ID 필수
         */
        channelKey?: string;
        /**
         * 채널 그룹 ID
         *
         * 채널 키 또는 채널 그룹 ID 필수
         */
        channelGroupId?: string;
        /** 결제수단 정보 */
        method: InstantPaymentMethodInput;
        /** 주문명 */
        orderName: string;
        /**
         * 문화비 지출 여부
         *
         * 기본값은 false 입니다.
         */
        isCulturalExpense?: boolean;
        /**
         * 에스크로 결제 여부
         *
         * 기본값은 false 입니다.
         */
        isEscrow?: boolean;
        /** 고객 정보 */
        customer?: CustomerInput;
        /** 사용자 지정 데이터 */
        customData?: string;
        /** 결제 금액 세부 입력 정보 */
        amount: PaymentAmountInput;
        /** 통화 */
        currency: Currency;
        /** 결제 국가 */
        country?: Country;
        /**
         * 웹훅 주소
         *
         * 결제 승인/실패 시 요청을 받을 웹훅 주소입니다.
         * 상점에 설정되어 있는 값보다 우선적으로 적용됩니다.
         * 입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
         */
        noticeUrls?: string[];
        /**
         * 상품 정보
         *
         * 입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
         */
        products?: PaymentProduct[];
        /**
         * 상품 개수
         * (int32)
         */
        productCount?: number;
        /** 상품 유형 */
        productType?: PaymentProductType;
        /** 배송지 주소 */
        shippingAddress?: SeparatedAddressInput;
        /** 해당 결제에 적용할 프로모션 아이디 */
        promotionId?: string;
    }) => Promise<PayInstantlyResponse>;
    /**
     * 결제 정보 사전 등록
     *
     * 결제 정보를 사전 등록합니다.
     *
     * @throws {@link PreRegisterPaymentError}
     */
    preRegisterPayment: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 결제 총 금액
         * (int64)
         */
        totalAmount?: number;
        /**
         * 결제 면세 금액
         * (int64)
         */
        taxFreeAmount?: number;
        /** 통화 단위 */
        currency?: Currency;
    }) => Promise<PreRegisterPaymentResponse>;
    /**
     * 영수증 내 하위 상점 거래 등록
     *
     * 결제 내역 매출전표에 하위 상점의 거래를 등록합니다.
     * 지원되는 PG사:
     * KG이니시스(이용 전 콘솔 -> 결제연동 탭에서 INIApi Key 등록 필요)
     *
     * @throws {@link RegisterStoreReceiptError}
     */
    registerStoreReceipt: (options: {
        /** 등록할 하위 상점 결제 건 아이디 */
        paymentId: string;
        /** 하위 상점 거래 목록 */
        items: RegisterStoreReceiptBodyItem[];
        /** 상점 아이디 */
        storeId?: string;
    }) => Promise<RegisterStoreReceiptResponse>;
    /**
     * 웹훅 재발송
     *
     * 웹훅을 재발송합니다.
     *
     * @throws {@link ResendWebhookError}
     */
    resendWebhook: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
        /**
         * 웹훅 아이디
         *
         * 입력하지 않으면 결제 건의 가장 최근 웹훅 아이디가 기본 적용됩니다
         */
        webhookId?: string;
    }) => Promise<ResendWebhookResponse>;
    /**
     * 결제 시도 내역 조회
     *
     * 주어진 아이디에 대응되는 결제 건의 결제 시도 내역을 조회합니다.
     *
     * @throws {@link GetPaymentTransactionsError}
     */
    getPaymentTransactions: (options: {
        /** 조회할 결제 아이디 */
        paymentId: string;
        /** 상점 아이디 */
        storeId?: string;
    }) => Promise<GetPaymentTransactionsResponse>;
    /**
     * 가상계좌 말소
     *
     * 발급된 가상계좌를 말소합니다.
     *
     * @throws {@link CloseVirtualAccountError}
     */
    closeVirtualAccount: (options: {
        /** 결제 건 아이디 */
        paymentId: string;
        /**
         * 상점 아이디
         *
         * 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
         */
        storeId?: string;
    }) => Promise<CloseVirtualAccountResponse>;
    /**
     * 결제 단건 조회
     *
     * 주어진 아이디에 대응되는 결제 건을 조회합니다.
     *
     * @throws {@link GetPaymentError}
     */
    getPayment: (options: {
        /** 조회할 결제 아이디 */
        paymentId: string;
        /** 상점 아이디 */
        storeId?: string;
    }) => Promise<Payment>;
    /**
     * 결제 다건 조회(페이지 기반)
     *
     * 주어진 조건에 맞는 결제 건들을 페이지 기반으로 조회합니다.
     *
     * @throws {@link GetPaymentsError}
     */
    getPayments: (options?: {
        /**
         * 요청할 페이지 정보
         *
         * 미 입력 시 number: 0, size: 10 으로 기본값이 적용됩니다.
         */
        page?: PageInput;
        /**
         * 조회할 결제 건 조건 필터
         *
         * V1 결제 건의 경우 일부 필드에 대해 필터가 적용되지 않을 수 있습니다.
         */
        filter?: PaymentFilterInput;
    }) => Promise<GetPaymentsResponse>;
    billingKey: BillingKeyClient;
    cashReceipt: CashReceiptClient;
    paymentSchedule: PaymentScheduleClient;
    promotion: PromotionClient;
};
export declare class GetAllPaymentsError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class PayWithBillingKeyError extends PaymentError {
    readonly data: AlreadyPaidError | BillingKeyAlreadyDeletedError | BillingKeyNotFoundError | ChannelNotFoundError | DiscountAmountExceedsTotalAmountError | ForbiddenError | InvalidRequestError | MaxTransactionCountReachedError | PaymentScheduleAlreadyExistsError | PgProviderError | PromotionPayMethodDoesNotMatchError | SumOfPartsExceedsTotalAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: AlreadyPaidError | BillingKeyAlreadyDeletedError | BillingKeyNotFoundError | ChannelNotFoundError | DiscountAmountExceedsTotalAmountError | ForbiddenError | InvalidRequestError | MaxTransactionCountReachedError | PaymentScheduleAlreadyExistsError | PgProviderError | PromotionPayMethodDoesNotMatchError | SumOfPartsExceedsTotalAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class CancelPaymentError extends PaymentError {
    readonly data: CancellableAmountConsistencyBrokenError | CancelAmountExceedsCancellableAmountError | CancelTaxAmountExceedsCancellableTaxAmountError | CancelTaxFreeAmountExceedsCancellableTaxFreeAmountError | ForbiddenError | InvalidRequestError | NegativePromotionAdjustedCancelAmountError | PaymentAlreadyCancelledError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | PromotionDiscountRetainOptionShouldNotBeChangedError | SumOfPartsExceedsCancelAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: CancellableAmountConsistencyBrokenError | CancelAmountExceedsCancellableAmountError | CancelTaxAmountExceedsCancellableTaxAmountError | CancelTaxFreeAmountExceedsCancellableTaxFreeAmountError | ForbiddenError | InvalidRequestError | NegativePromotionAdjustedCancelAmountError | PaymentAlreadyCancelledError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | PromotionDiscountRetainOptionShouldNotBeChangedError | SumOfPartsExceedsCancelAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ConfirmEscrowError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ApplyEscrowLogisticsError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ModifyEscrowLogisticsError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class PayInstantlyError extends PaymentError {
    readonly data: AlreadyPaidError | ChannelNotFoundError | DiscountAmountExceedsTotalAmountError | ForbiddenError | InvalidRequestError | MaxTransactionCountReachedError | PaymentScheduleAlreadyExistsError | PgProviderError | PromotionPayMethodDoesNotMatchError | SumOfPartsExceedsTotalAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: AlreadyPaidError | ChannelNotFoundError | DiscountAmountExceedsTotalAmountError | ForbiddenError | InvalidRequestError | MaxTransactionCountReachedError | PaymentScheduleAlreadyExistsError | PgProviderError | PromotionPayMethodDoesNotMatchError | SumOfPartsExceedsTotalAmountError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class PreRegisterPaymentError extends PaymentError {
    readonly data: AlreadyPaidError | ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: AlreadyPaidError | ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class RegisterStoreReceiptError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotPaidError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ResendWebhookError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | MaxWebhookRetryCountReachedError | PaymentNotFoundError | UnauthorizedError | WebhookNotFoundError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | MaxWebhookRetryCountReachedError | PaymentNotFoundError | UnauthorizedError | WebhookNotFoundError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPaymentTransactionsError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class CloseVirtualAccountError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotWaitingForDepositError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | PaymentNotWaitingForDepositError | PgProviderError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPaymentError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PaymentNotFoundError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPaymentsError extends PaymentError {
    readonly data: ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
