import { HttpClient } from '../httpClient.js';
import { Payment } from '../types/paymentType.js';
import { Result } from '../utils/result.js';
import { TossPaymentsError } from '../utils/tossPaymentsError.js';
import { PaymentCancelErrorCode, PaymentConfirmErrorCode, PaymentInquiryErrorCode, PaymentKeyInErrorCode } from '../types/errorTypes.js';
import { PaymentCancelRequest, PaymentConfirmRequest, PaymentInquiryRequest, PaymentKey, PaymentKeyInRequestBody } from '../types/requestTypes.js';
/**
 * 결제 API
 */
export declare class PaymentApi {
    private client;
    constructor(client: HttpClient);
    /**
     * 결제 승인
     * @see https://docs.tosspayments.com/reference#%EA%B2%B0%EC%A0%9C-%EC%8A%B9%EC%9D%B8
     * @param paymentConfirmRequest 결제 승인 요청
     * @param idempotencyKey 멱등키
     * @return 결제 정보
     */
    confirm(paymentConfirmRequest: PaymentConfirmRequest, idempotencyKey?: string): Promise<Result<Payment, TossPaymentsError<PaymentConfirmErrorCode>>>;
    /**
     * 결제 조회
     * @param paymentInquiryRequest 결제 조회 요청
     * @return 결제 정보
     */
    inquiry(paymentInquiryRequest: PaymentInquiryRequest): Promise<Result<Payment, TossPaymentsError<PaymentInquiryErrorCode>>>;
    /**
     * 결제 취소
     * @param paymentKey 결제 키
     * @param paymentCancelRequest 결제 취소 요청
     * @param idempotencyKey 멱등키
     * @return 결제 정보
     */
    cancel(paymentKey: PaymentKey, paymentCancelRequest: PaymentCancelRequest, idempotencyKey?: string): Promise<Result<Payment, TossPaymentsError<PaymentCancelErrorCode>>>;
    /**
     * 카드 번호로 결제
     * @param paymentKeyInRequest 결제 요청
     * @param idempotencyKey 멱등키
     * @return 결제 정보
     */
    keyIn(paymentKeyInRequest: PaymentKeyInRequestBody, idempotencyKey?: string): Promise<Result<Payment, TossPaymentsError<PaymentKeyInErrorCode>>>;
}
