import { ColorValue } from 'react-native'; import { Token } from './models'; /** * カードフォームがキャンセルされたときに実行されるリスナー */ export type OnCardFormCanceled = () => void; /** * カードフォームが完了したときに実行されるリスナー */ export type OnCardFormCompleted = () => void; /** * カードフォームでトークンが生成されたときに実行されるリスナー * * @param token PAY.JPトークン */ export type OnCardFormProducedToken = (token: Token) => void; /** * カードフォームスタイル(iOS用) */ export type IOSCardFormStyle = { labelTextColor?: ColorValue; inputTextColor?: ColorValue; errorTextColor?: ColorValue; tintColor?: ColorValue; inputFieldBackgroundColor?: ColorValue; submitButtonColor?: ColorValue; highlightColor?: ColorValue; }; /** * カードフォームの表示タイプ */ export type CardFormType = 'multiLine' | 'cardDisplay'; type ExtraAttributeEmail = { type: 'email'; preset?: string; }; type ExtraAttributePhone = { type: 'phone'; presetRegion?: string; presetNumber?: string; }; /** * カードフォームの追加属性 */ export type ExtraAttribute = ExtraAttributeEmail | ExtraAttributePhone; /** * カードフォームのオプション */ type CardFormOption = { /** * PAY.JP Platform Marketplace 利用の場合のみ必要です (cf. {@link https://pay.jp/docs/platform-tenant-checkout} ). */ tenantId?: string; /** * カードフォームの表示タイプ(デフォルトはmultiLine) */ cardFormType?: CardFormType; /** * カードフォームに追加の属性項目を設定できます。デフォルトはメールアドレスと電話番号が表示されます。 * 入力した内容はカードオブジェクトにセットされ、 3Dセキュア認証実施時に送信されます。 * * 3Dセキュア認証実施時の連携項目追加については以下のドキュメントを参照してください。 * https://help.pay.jp/ja/articles/9556161 */ extraAttributes?: ExtraAttribute[]; /** * 3-D セキュア認証の実施可否を設定します。デフォルトはfalseです。 */ useThreeDSecure?: boolean; }; /** * カードフォームを開始します。 * 更新を受け取るには {@link onCardFormUpdate} にリスナーを登録してください。 * * @param options カードフォームのオプション */ export declare const startCardForm: (options?: CardFormOption) => Promise; /** * カードフォーム画面を閉じます。 */ export declare const completeCardForm: () => Promise; /** * カードフォーム画面を終了せずにエラーメッセージを表示します。 * * @param message エラーメッセージ */ export declare const showTokenProcessingError: (message: string) => Promise; /** * カードフォームのスタイルをセットします。(iOS用) * * @param style スタイル情報 */ export declare const setIOSCardFormStyle: (style: IOSCardFormStyle) => Promise; /** * カードフォームの更新を受け取ります。 * 登録したリスナーを解除するには、返却される関数を実行します。 * * ```typescript * const unsubscribe = PayjpCardForm.onCardFormUpdate({ * onCardFormCanceled: () => {}, * onCardFormCompleted: () => {}, * onCardFormProducedToken: token => {} * }); * // when you need to release listener... * unsubscribe(); * ``` * * @param observer カードフォームの更新を受け取るリスナー * @returns unsubscribe function リスナーを解除する(多くの場合アンマウント時にコールする)関数 */ export declare const onCardFormUpdate: (observer: { onCardFormCanceled?: OnCardFormCanceled; onCardFormCompleted?: OnCardFormCompleted; onCardFormProducedToken: OnCardFormProducedToken; }) => (() => void); export {};