// Type definitions for react-stripe-elements 1.1 // 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 // 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; type TokenOptions = stripe.TokenOptions; 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']; } 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; } } 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 { } export class PostalCodeElement extends React.Component { } export class PaymentRequestButtonElement extends React.Component { } export class IbanElement extends React.Component { } export class IdealBankElement extends React.Component { }