export type PaymentKey = string & {
    readonly maxLength?: 200;
};
type OrderId = string & {
    readonly minLength?: 6;
    readonly maxLength?: 64;
};
export type PaymentConfirmRequest = {
    paymentKey: PaymentKey;
    orderId: OrderId;
    amount: number;
};
export type PaymentInquiryRequest = {
    paymentKey: PaymentKey;
} & {
    orderId: OrderId;
};
type RefundReceiveAccount = {
    bank: string;
    accountNumber: string;
    holderName: string;
};
type Currency = 'USD';
export interface PaymentCancelRequest {
    cancelReason: string;
    cancelAmount?: number;
    refundReceiveAccount?: RefundReceiveAccount;
    taxFreeAmount?: number;
    currency?: Currency;
}
export declare const validateCancelRequestBody: (body: PaymentCancelRequest) => void;
export type PaymentKeyInRequestBody = {
    amount: number;
    orderId: string;
    cardNumber: string;
    cardExpirationYear: string;
    cardExpirationMonth: string;
    orderName: string;
    customerIdentityNumber: string;
    cardPassword?: string;
    cardInstallmentPlan?: 0 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
    useFreeInstallmentPlan?: boolean;
    taxFreeAmount?: number;
    customerEmail?: string;
    customerName?: string;
    vbv?: {
        cavv: string;
        xid: string;
        eci: string;
    };
};
export interface IssueVirtualAccountRequest {
    amount: number;
    orderId: string;
    orderName: string;
    customerName: string;
    bank: string;
    accountKey?: string;
    validHours?: number;
    dueDate?: string;
    customerEmail?: string;
    customerMobilePhone?: string;
    taxFreeAmount?: number;
    useEscrow?: boolean;
    cashReceipt?: {
        type: string;
        registrationNumber?: string;
    };
    escrowProducts?: {
        id: string;
        name: string;
        code: string;
        unitPrice: number;
        quantity: number;
    }[];
}
export declare function validateIssueVirtualAccountRequest(body: IssueVirtualAccountRequest): void;
export type IssueBillingKeyWithCustomerKeyRequest = {
    customerKey: string;
    cardNumber: string;
    cardExpirationYear: string;
    cardExpirationMonth: string;
    customerIdentityNumber: string;
    cardPassword?: string;
    customerName?: string;
    customerEmail?: string;
    vbv?: {
        cavv: string;
        xid: string;
        eci: string;
    };
};
export declare function validateIssueBillingKeyWithCustomerKey(data: IssueBillingKeyWithCustomerKeyRequest): void;
export type IssueBillingKeyWithAuthKeyRequest = {
    authKey: string;
    customerKey: string;
};
export type BillingConfirmRequest = {
    amount: number;
    customerKey: string;
    orderId: string;
    orderName: string;
    customerEmail?: string;
    customerName?: string;
    taxFreeAmount?: number;
    cardInstallmentPlan?: number;
};
export type TransactionInquiryRequest = {
    startDate: string;
    endDate: string;
    startingAfter?: string;
    limit?: number;
};
export type SettlementInquiryRequest = {
    startDate: string;
    endDate: string;
    dateType?: "soldDate" | "paidOutDate";
    page?: number;
    size?: number;
};
export type SettlementManuallyRequest = {
    paymentKey: PaymentKey;
};
export type IssueCashReceiptRequest = {
    amount: number;
    orderId: string;
    orderName: string;
    customerIdentityNumber: string;
    type: '소득공제' | '지출증빙';
    taxFreeAmount?: number;
};
export type CashReceiptInquiryRequest = {
    requestDate: string;
    cursor?: number;
    limit?: number;
};
export {};
