// Type definitions for react-stripe-elements 1.3 // Project: https://github.com/stripe/react-stripe-elements#readme // Definitions by: dan-j // Santiago Doldan // sonnysangha // Andrew Goh Yisheng // Thomas Chia // Piotr Dabrowski // Victor Irzak // Alex Price // Maciej Dabek // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 /// import * as React from 'react'; export namespace ReactStripeElements { type ElementChangeResponse = stripe.elements.ElementChangeResponse; type ElementsOptions = stripe.elements.ElementsOptions; // From https://stripe.com/docs/stripe-js/reference#element-types type TokenType = 'card' | 'cardNumber' | 'cardExpiry' | 'cardCvc' | 'paymentRequestButton' | 'iban' | 'idealBank'; type TokenOptions = stripe.TokenOptions & { type?: TokenType }; type TokenResponse = stripe.TokenResponse; type SourceResponse = stripe.SourceResponse; type SourceOptions = stripe.SourceOptions; type HTMLStripeElement = stripe.elements.Element; /** * There's a bug in @types/stripe which defines the property as * `declined_code` (with a 'd') but it's in fact `decline_code` */ type PatchedTokenResponse = TokenResponse & { error?: { decline_code?: string }; }; interface StripeProviderOptions { stripeAccount?: string; } type StripeProviderProps = | { apiKey: string; stripe?: never } & StripeProviderOptions | { apiKey?: never; stripe: stripe.Stripe | null } & StripeProviderOptions; interface StripeProps { createSource(sourceData?: SourceOptions): Promise; createToken(options?: TokenOptions): Promise; paymentRequest: stripe.Stripe['paymentRequest']; createPaymentMethod( paymentMethodType: stripe.paymentMethod.paymentMethodType, data?: stripe.CreatePaymentMethodOptions, ): Promise; handleCardPayment( clientSecret: string, options?: stripe.HandleCardPaymentWithoutElementsOptions, ): Promise; handleCardSetup( clientSecret: string, data?: stripe.HandleCardSetupOptions, ): Promise; } interface InjectOptions { withRef?: boolean; } interface InjectedStripeProps { stripe?: StripeProps; } interface ElementProps extends ElementsOptions { id?: string; className?: string; elementRef?(ref: any): void; onChange?(event: ElementChangeResponse): void; onBlur?(event: ElementChangeResponse): void; onFocus?(event: ElementChangeResponse): void; onReady?(el: HTMLStripeElement): void; } interface PaymentRequestButtonElementProps extends ElementProps { onClick?(event: any): void; } } export class StripeProvider extends React.Component {} export class Elements extends React.Component {} export function injectStripe

( WrappedComponent: React.ComponentType

, componentOptions?: ReactStripeElements.InjectOptions, ): React.ComponentType

; export class CardElement extends React.Component {} export class CardNumberElement extends React.Component {} export class CardExpiryElement extends React.Component {} export class CardCvcElement extends React.Component {} // Deprecated but aliased until react-stripe-elements v5 export class CardCVCElement extends CardCvcElement {} export class PostalCodeElement extends React.Component {} export class PaymentRequestButtonElement extends React.Component {} export class IbanElement extends React.Component {} export class IdealBankElement extends React.Component {}