/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Address } from './Address';
/**
 * A card's non-confidential details.
 * @export
 * @interface PaymentCard
 */
export interface PaymentCard {
    /**
     * A unique identifier for an object.
     * @type {string}
     * @memberof PaymentCard
     */
    readonly id?: string;
    /**
     * The first six digits of the card number, known as the Bank Identification Number (BIN).
     * @type {string}
     * @memberof PaymentCard
     */
    bin?: string | null;
    /**
     * The first six digits of the card number, known as the Bank Identification Number (BIN).
     * @type {string}
     * @memberof PaymentCard
     */
    card_brand?: PaymentCardCardBrand;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    card_type?: PaymentCardCardType;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    prepaid_type?: PaymentCardPrepaidType;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    cardholder_name?: string | null;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    customer_id?: string | null;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    merchant_id?: string;
    /**
     * The expiration month of the associated card as an integer between 1 and 12.
     * @type {number}
     * @memberof PaymentCard
     */
    exp_month?: number | null;
    /**
     * The four-digit year of the card's expiration date.
     * @type {number}
     * @memberof PaymentCard
     */
    exp_year?: number | null;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    fingerprint?: string | null;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    last_4?: string | null;
    /**
     * Indicates whether or not a card can be used for payments.
     * @type {boolean}
     * @memberof PaymentCard
     */
    enabled?: boolean | null;
    /**
     *
     * @type {Address}
     * @memberof PaymentCard
     */
    billing_address?: Address;
    /**
     * An optional user-defined reference ID that associates this record with another entity in an external system. For example, a customer ID from an external customer management system.
     * @type {string}
     * @memberof PaymentCard
     */
    reference_id?: string | null;
    /**
     *
     * @type {string}
     * @memberof PaymentCard
     */
    version?: string | null;
}
/**
 * @export
 * @enum {string}
 */
export declare enum PaymentCardCardBrand {
    visa = "visa",
    mastercard = "mastercard",
    amex = "amex",
    discover = "discover",
    discover_diners = "discover-diners",
    jcb = "jcb",
    china_unionpay = "china-unionpay",
    square_gift_card = "square-gift-card",
    square_capital_card = "square-capital-card",
    interac = "interac",
    eftpos = "eftpos",
    felica = "felica",
    ebt = "ebt",
    other = "other"
}
/**
 * @export
 * @enum {string}
 */
export declare enum PaymentCardCardType {
    credit = "credit",
    debit = "debit",
    prepaid = "prepaid",
    other = "other"
}
/**
 * @export
 * @enum {string}
 */
export declare enum PaymentCardPrepaidType {
    non_prepaid = "non-prepaid",
    prepaid = "prepaid",
    unknown = "unknown"
}
export declare function PaymentCardFromJSON(json: any): PaymentCard;
export declare function PaymentCardFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaymentCard;
export declare function PaymentCardToJSON(value?: PaymentCard | null): any;
