import { HttpClient } from '../httpClient.js';
import { PaymentWithCard } from '../types/paymentType.js';
import { Result } from '../utils/result.js';
import { TossPaymentsError } from '../utils/tossPaymentsError.js';
import { BillingConfirmErrorCode, IssueBillingKeyErrorCode } from '../types/errorTypes.js';
import { BillingConfirmRequest, IssueBillingKeyWithAuthKeyRequest, IssueBillingKeyWithCustomerKeyRequest } from '../types/requestTypes.js';
import { Billing } from '../types/billingType.js';
/**
 * 빌링 API
 */
export declare class BillingApi {
    private client;
    constructor(client: HttpClient);
    /**
     * 빌링키 발급 with 고객키
     * @param issueBillingKeyWithCustomerKeyRequest 빌링키 발급 요청
     * @param idempotencyKey 멱등키
     * @return 빌링 정보
     */
    issueWithCustomerKey(issueBillingKeyWithCustomerKeyRequest: IssueBillingKeyWithCustomerKeyRequest, idempotencyKey?: string): Promise<Result<Billing, TossPaymentsError<IssueBillingKeyErrorCode>>>;
    /**
     * 빌링키 발급 with 인증키
     * @param issueBillingKeyWithAuthKeyRequest 빌링키 발급 요청
     * @param idempotencyKey 멱등키
     * @return 빌링 정보
     */
    issueWithAuthKey(issueBillingKeyWithAuthKeyRequest: IssueBillingKeyWithAuthKeyRequest, idempotencyKey?: string): Promise<Result<Billing, TossPaymentsError<IssueBillingKeyErrorCode>>>;
    /**
     * 빌링키 결제
     * @param billingKey 빌링키
     * @param billingConfirmRequest 빌링키 결제 요청
     * @param idempotencyKey 멱등키
     * @return 결제 정보 (카드)
     */
    bill(billingKey: string, billingConfirmRequest: BillingConfirmRequest, idempotencyKey?: string): Promise<Result<PaymentWithCard, TossPaymentsError<BillingConfirmErrorCode>>>;
}
