import { ButtonStyle, Environment } from "./configuration"; import { AuthorizationData, AuthorizationResponse, CancellationData } from "./callback-data"; export enum FundingOption { CREDIT, CARD, VENMO, ELV, PAYPAL, } export interface ButtonRenderer { render( options: { env?: Environment | undefined; style?: ButtonStyle | undefined; locale?: string | undefined; payment?: (() => Promise) | undefined; onAuthorize: (data: AuthorizationData, actions: object) => Promise; onCancel?: ((data: CancellationData, actions: object) => void) | undefined; onError?: ((error: string) => void) | undefined; onShippingChange?: (() => void) | undefined; onAuth?: ((data: string | object) => object) | undefined; accessToken?: (() => void) | undefined; onClose?: (() => void) | undefined; funding?: | { allowed?: FundingOption[] | undefined; disallowed?: FundingOption[] | undefined; } | undefined; sessionID?: string | undefined; buttonSessionID?: string | undefined; meta?: object | undefined; stage?: string | undefined; stageUrl?: string | undefined; authCode?: string | undefined; localhostUrl?: string | undefined; checkoutUri?: string | undefined; client?: object | undefined; commit?: boolean | undefined; experience?: object | undefined; fundingSource?: string | undefined; fundingOffered?: object | undefined; logLevel?: string | undefined; test?: object | undefined; }, selector: string, ): void; } export interface ButtonsRenderer { (options: { style?: ButtonStyle | undefined; fundingSource?: string | undefined; createOrder?: (() => Promise) | undefined; createBillingAgreement?: (() => Promise) | undefined; onApprove: (data: AuthorizationData, actions: object) => Promise; onCancel?: ((data: CancellationData, actions: object) => void) | undefined; onError?: ((error: string) => void) | undefined; onInit?: (data: AuthorizationData, actions: object) => void; onClick?: () => void; }): ButtonsRenderer; render(selector: string): void; }