declare module 'braintree-web-drop-in' { interface DropinCreateOptions { authorization: string; container: string | HTMLElement; dataCollector?: boolean; threeDSecure?: boolean; card?: { cardholderName?: { required?: boolean }; [key: string]: unknown; } | false; googlePay?: { merchantId?: string; googlePayVersion?: number; transactionInfo?: { currencyCode?: string; totalPriceStatus?: string; totalPrice?: string; transactionId?: string; }; } | false; applePay?: { displayName?: string; paymentRequest?: { countryCode?: string; merchantCapabilities?: string[]; supportedNetworks?: string[]; currencyCode?: string; total?: { amount?: string; label?: string }; requiredBillingContactFields?: string[]; }; } | false; paypal?: { flow?: string; amount?: number; currency?: string; } | false; [key: string]: unknown; } interface DropinInstance { requestPaymentMethod( options: { threeDSecure?: { amount?: string; mobilePhoneNumber?: string; email?: string; billingAddress?: { givenName?: string; surname?: string; phoneNumber?: string; streetAddress?: string; locality?: string; countryCodeAlpha2?: string; }; }; }, callback: ( err: Error | null, payload: { nonce: string; deviceData?: string; type?: string } ) => void ): void; isPaymentMethodRequestable(): boolean; on( event: 'paymentMethodRequestable' | 'noPaymentMethodRequestable', handler: (event?: { type?: string; paymentMethodIsSelected?: boolean }) => void ): void; teardown(callback?: (err?: Error) => void): void; } function create( options: DropinCreateOptions, callback: (err: Error | null, instance: DropinInstance | null) => void ): void; export default { create }; export type { DropinCreateOptions, DropinInstance }; }