import * as pulumi from "@pulumi/pulumi";
/**
 * With this resource, you can create a card - [Stripe API card documentation](https://stripe.com/docs/api/cards).
 *
 * You can store multiple cards on a customer in order to charge the customer later. You can also store multiple debit
 * cards on a recipient in order to transfer to those cards later.
 *
 * > Passing your cardholder’s full credit card number to Stripe’s API isn't a recommended approach. In rare cases, you
 * may have to continue handling full credit card information directly. If this applies to you, you can enable unsafe
 * processing in your [dashboard](https://dashboard.stripe.com/settings/integration).
 *
 * > Using the stripe.Card resource may potentially leak credit card information into your Terraform State.
 * Please see these recommendations
 * on how to treat sensitive data in Terraform State.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as stripe from "pulumi-stripe";
 *
 * // card for the customer
 * const cardCard = new stripe.Card("cardCard", {
 *     customer: stripe_customer.customer.id,
 *     number: "4242424242424242",
 *     cvc: 123,
 *     expMonth: 8,
 *     expYear: 2030,
 * });
 * // card for the customer with address
 * const cardIndex_cardCard = new stripe.Card("cardIndex/cardCard", {
 *     customer: stripe_customer.customer.id,
 *     number: "4242424242424242",
 *     cvc: 123,
 *     expMonth: 8,
 *     expYear: 2030,
 *     address: {
 *         line1: "1 The Best Street",
 *         line2: "Apartment 401",
 *         city: "Sydney",
 *         state: "NSW",
 *         zip: "2000",
 *         country: "Australia",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * ```sh
 * $ pulumi import stripe:index/card:Card card <card_id>
 * ```
 */
export declare class Card extends pulumi.CustomResource {
    /**
     * Get an existing Card resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CardState, opts?: pulumi.CustomResourceOptions): Card;
    /**
     * Returns true if the given object is an instance of Card.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Card;
    /**
     * Map(String). Address map with fields related to the address: `line1`, `line2`, `city`, `state`
     * , `zip` and `country`.
     */
    readonly address: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * String. If address `line1` was provided, results of the check: `pass`, `fail`, `unavailable`,
     * or `unchecked`.
     */
    readonly addressLine1Check: pulumi.Output<string>;
    /**
     * String. If address `zip` was provided, results of the check: `pass`, `fail`, `unavailable`,
     * or `unchecked`.
     */
    readonly addressZipCheck: pulumi.Output<string>;
    /**
     * List(String). A set of available payout methods for this card. Only values from this set
     * should be passed as the method when creating a payout.
     */
    readonly availablePayoutMethods: pulumi.Output<string[]>;
    /**
     * String. Card brand. Can be `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`
     * , `Visa`, or `Unknown`.
     */
    readonly brand: pulumi.Output<string>;
    /**
     * String. Two-letter ISO code representing the country of the card. You could use this attribute to get a
     * sense of the international breakdown of cards you’ve collected.
     */
    readonly country: pulumi.Output<string>;
    /**
     * String. The customer that this card belongs to.
     */
    readonly customer: pulumi.Output<string>;
    /**
     * Int. Card security code. Highly recommended to always include this value, but it's required only
     * for accounts based in European countries.
     */
    readonly cvc: pulumi.Output<number | undefined>;
    /**
     * String. If a `cvc` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A
     * result of `unchecked` indicates that CVC was provided but hasn’t been checked yet
     */
    readonly cvcCheck: pulumi.Output<string>;
    /**
     * Int. Number representing the card's expiration month.
     */
    readonly expMonth: pulumi.Output<number>;
    /**
     * Int. Four-digit number representing the card's expiration year.
     */
    readonly expYear: pulumi.Output<number>;
    /**
     * String. Uniquely identifies this particular card number. You can use this attribute to check whether
     * two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize
     * card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card
     * number.
     */
    readonly fingerprint: pulumi.Output<string>;
    /**
     * String. Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
     */
    readonly funding: pulumi.Output<string>;
    /**
     * String. The last four digits of the card.
     */
    readonly last4: pulumi.Output<string>;
    /**
     * Map(String). Set of key-value pairs that you can attach to an object. This can be useful for
     * storing additional information about the object in a structured format.
     */
    readonly metadata: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * String. Cardholder name.
     */
    readonly name: pulumi.Output<string>;
    /**
     * String. The card number, as a string without any separators.
     */
    readonly number: pulumi.Output<string>;
    /**
     * String. If the card number is tokenized, this is the method that was used. Can
     * be `androidPay` (includes Google Pay), `applePay`, `masterpass`, `visaCheckout`, or `null`.
     */
    readonly tokenizationMethod: pulumi.Output<string>;
    /**
     * Create a Card resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: CardArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Card resources.
 */
export interface CardState {
    /**
     * Map(String). Address map with fields related to the address: `line1`, `line2`, `city`, `state`
     * , `zip` and `country`.
     */
    address?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * String. If address `line1` was provided, results of the check: `pass`, `fail`, `unavailable`,
     * or `unchecked`.
     */
    addressLine1Check?: pulumi.Input<string>;
    /**
     * String. If address `zip` was provided, results of the check: `pass`, `fail`, `unavailable`,
     * or `unchecked`.
     */
    addressZipCheck?: pulumi.Input<string>;
    /**
     * List(String). A set of available payout methods for this card. Only values from this set
     * should be passed as the method when creating a payout.
     */
    availablePayoutMethods?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * String. Card brand. Can be `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`
     * , `Visa`, or `Unknown`.
     */
    brand?: pulumi.Input<string>;
    /**
     * String. Two-letter ISO code representing the country of the card. You could use this attribute to get a
     * sense of the international breakdown of cards you’ve collected.
     */
    country?: pulumi.Input<string>;
    /**
     * String. The customer that this card belongs to.
     */
    customer?: pulumi.Input<string>;
    /**
     * Int. Card security code. Highly recommended to always include this value, but it's required only
     * for accounts based in European countries.
     */
    cvc?: pulumi.Input<number>;
    /**
     * String. If a `cvc` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A
     * result of `unchecked` indicates that CVC was provided but hasn’t been checked yet
     */
    cvcCheck?: pulumi.Input<string>;
    /**
     * Int. Number representing the card's expiration month.
     */
    expMonth?: pulumi.Input<number>;
    /**
     * Int. Four-digit number representing the card's expiration year.
     */
    expYear?: pulumi.Input<number>;
    /**
     * String. Uniquely identifies this particular card number. You can use this attribute to check whether
     * two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize
     * card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card
     * number.
     */
    fingerprint?: pulumi.Input<string>;
    /**
     * String. Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
     */
    funding?: pulumi.Input<string>;
    /**
     * String. The last four digits of the card.
     */
    last4?: pulumi.Input<string>;
    /**
     * Map(String). Set of key-value pairs that you can attach to an object. This can be useful for
     * storing additional information about the object in a structured format.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * String. Cardholder name.
     */
    name?: pulumi.Input<string>;
    /**
     * String. The card number, as a string without any separators.
     */
    number?: pulumi.Input<string>;
    /**
     * String. If the card number is tokenized, this is the method that was used. Can
     * be `androidPay` (includes Google Pay), `applePay`, `masterpass`, `visaCheckout`, or `null`.
     */
    tokenizationMethod?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Card resource.
 */
export interface CardArgs {
    /**
     * Map(String). Address map with fields related to the address: `line1`, `line2`, `city`, `state`
     * , `zip` and `country`.
     */
    address?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * String. The customer that this card belongs to.
     */
    customer: pulumi.Input<string>;
    /**
     * Int. Card security code. Highly recommended to always include this value, but it's required only
     * for accounts based in European countries.
     */
    cvc?: pulumi.Input<number>;
    /**
     * Int. Number representing the card's expiration month.
     */
    expMonth: pulumi.Input<number>;
    /**
     * Int. Four-digit number representing the card's expiration year.
     */
    expYear: pulumi.Input<number>;
    /**
     * Map(String). Set of key-value pairs that you can attach to an object. This can be useful for
     * storing additional information about the object in a structured format.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * String. Cardholder name.
     */
    name?: pulumi.Input<string>;
    /**
     * String. The card number, as a string without any separators.
     */
    number: pulumi.Input<string>;
}
