import { Shipping, ShippingOptions } from './token'; export interface Element { mount(el: HTMLElement | string): void; on(ev: ElementEventType, handler: (ev?: any) => void): void; blur(): void; clear(): void; focus(): void; unmount(): void; update(options: ElementOptions): void; } export declare type ElementEventType = 'blur' | 'change' | 'click' | 'focus' | 'ready'; export declare type ElementType = 'card' | 'cardNumber' | 'cardExpiry' | 'cardCvc' | 'postalCode' | 'paymentRequestButton'; export interface ElementOptions { style?: { base?: ElementStyleAttributes; complete?: ElementStyleAttributes; empty?: ElementStyleAttributes; invalid?: ElementStyleAttributes; }; paymentRequest?: any; hidePostalCode?: boolean; hideIcon?: boolean; iconStyle?: 'solid' | 'default'; placeholder?: string; value?: string | object; } export interface Style { } export interface RequestElementOptions { country: string; currency: string; total: { amount: number; label: string; pending?: boolean; }; displayItems?: Array<{ amount: number; label: string; pending?: boolean; }>; requestPayerName?: boolean; requestPayerEmail?: boolean; requestPayerPhone?: boolean; requestShipping?: boolean; shippingOptions?: Array; } export interface PaymentRequestButtonStyle { type?: 'default' | 'donate' | 'buy'; theme?: 'dark' | 'light' | 'light-outline'; height?: string; } export interface ElementStyleAttributes { color?: any; fontFamily?: any; fontSize?: any; fontSmoothing?: any; fontStyle?: any; fontWeight?: any; fontVariant?: any; iconColor?: any; lineHeight?: any; letterSpacing?: any; textDecoration?: any; textShadow?: any; textTransform?: any; ':hover'?: any; ':focus'?: any; '::placeholder'?: any; '::selection'?: any; ':-webkit-autofill'?: any; } export interface UpdateDetails { status: 'success' | 'fail' | 'invalid_shipping_address'; total?: { amount: number; label: string; pending?: boolean; }; displayItems?: Array<{ amount: number; label: string; pending?: boolean; }>; shippingOptions?: Array; }