PaymentClient: {
    preRegisterPayment: (
        options: {
            paymentId: string;
            storeId?: string;
            totalAmount?: number;
            taxFreeAmount?: number;
            currency?: Currency;
        },
    ) => Promise<PreRegisterPaymentResponse>;
    getPayment: (
        options: { paymentId: string; storeId?: string },
    ) => Promise<Payment>;
    getPaymentTransactions: (
        options: { paymentId: string; storeId?: string },
    ) => Promise<GetPaymentTransactionsResponse>;
    getPayments: (
        options?: { page?: PageInput; filter?: PaymentFilterInput },
    ) => Promise<GetPaymentsResponse>;
    getAllPaymentsByCursor: (
        options?: {
            storeId?: string;
            from?: string;
            until?: string;
            cursor?: string;
            size?: number;
        },
    ) => Promise<GetAllPaymentsByCursorResponse>;
    cancelPayment: (
        options: {
            paymentId: string;
            storeId?: string;
            amount?: number;
            taxFreeAmount?: number;
            vatAmount?: number;
            reason: string;
            requester?: CancelRequester;
            promotionDiscountRetainOption?: PromotionDiscountRetainOption;
            currentCancellableAmount?: number;
            refundAccount?: CancelPaymentBodyRefundAccount;
        },
    ) => Promise<CancelPaymentResponse>;
    payWithBillingKey: (
        options: {
            paymentId: string;
            storeId?: string;
            billingKey: string;
            channelKey?: string;
            orderName: string;
            customer?: CustomerInput;
            customData?: string;
            amount: PaymentAmountInput;
            currency: Currency;
            installmentMonth?: number;
            useFreeInterestFromMerchant?: boolean;
            useCardPoint?: boolean;
            cashReceipt?: CashReceiptInput;
            country?: Country;
            noticeUrls?: string[];
            products?: PaymentProduct[];
            productCount?: number;
            productType?: PaymentProductType;
            shippingAddress?: SeparatedAddressInput;
            promotionId?: string;
            bypass?: object;
        },
    ) => Promise<PayWithBillingKeyResponse>;
    payInstantly: (
        options: {
            paymentId: string;
            storeId?: string;
            channelKey?: string;
            channelGroupId?: string;
            method: InstantPaymentMethodInput;
            orderName: string;
            isCulturalExpense?: boolean;
            isEscrow?: boolean;
            customer?: CustomerInput;
            customData?: string;
            amount: PaymentAmountInput;
            currency: Currency;
            country?: Country;
            noticeUrls?: string[];
            products?: PaymentProduct[];
            productCount?: number;
            productType?: PaymentProductType;
            shippingAddress?: SeparatedAddressInput;
            promotionId?: string;
        },
    ) => Promise<PayInstantlyResponse>;
    closeVirtualAccount: (
        options: { paymentId: string; storeId?: string },
    ) => Promise<CloseVirtualAccountResponse>;
    applyEscrowLogistics: (
        options: {
            paymentId: string;
            storeId?: string;
            sender?: PaymentEscrowSenderInput;
            receiver?: PaymentEscrowReceiverInput;
            logistics: PaymentLogistics;
            sendEmail?: boolean;
            products?: PaymentProduct[];
        },
    ) => Promise<ApplyEscrowLogisticsResponse>;
    modifyEscrowLogistics: (
        options: {
            paymentId: string;
            storeId?: string;
            sender?: PaymentEscrowSenderInput;
            receiver?: PaymentEscrowReceiverInput;
            logistics: PaymentLogistics;
            sendEmail?: boolean;
            products?: PaymentProduct[];
        },
    ) => Promise<ModifyEscrowLogisticsResponse>;
    confirmEscrow: (
        options: { paymentId: string; storeId?: string; fromStore?: boolean },
    ) => Promise<ConfirmEscrowResponse>;
    resendWebhook: (
        options: { paymentId: string; storeId?: string; webhookId?: string },
    ) => Promise<ResendWebhookResponse>;
    registerStoreReceipt: (
        options: {
            paymentId: string;
            items: RegisterStoreReceiptBodyItem[];
            storeId?: string;
        },
    ) => Promise<RegisterStoreReceiptResponse>;
    billingKey: payment.billingKey.BillingKeyClient;
    cashReceipt: payment.cashReceipt.CashReceiptClient;
    paymentSchedule: payment.paymentSchedule.PaymentScheduleClient;
    promotion: payment.promotion.PromotionClient;
}

Type declaration