import { ClaimDefinition, FiatCurrency } from "@credify/api-docs/apiClients/v1"; import { Offer } from "../src/offer"; export type Mode = | "production" | "sandbox" | "uat" | "sit" | "development" | "tis-sandbox" | "tis-production" | "local"; export type Locale = "en-US" | "vi-VN" | "ja-JP"; export interface CredifyConfig { mode: Mode; locale?: Locale; } export interface OIDCOptions { responseType?: string; responseMode?: string; state?: string; useEphemeralKey?: boolean; offerCode?: string; userId?: string; phoneNumber?: string; packageCode?: string; dopCode?: string; orderId?: string; } export interface Name { firstName: string; lastName: string; } export interface Phone { phoneNumber: string; countryCode: string; } export interface Email { email: string; } export interface DOB { date: string; } export interface Address { postalCode: string; country: string; province: string; city: string; addressLine: string; } export interface Nationality { country: string; } export type GIIDType = | "PASSPORT" | "DRIVING_LICENSE" | "NATIONAL_ID" | "BIOMETRIC_RESIDENCE_PERMIT" | "TAX_ID" | "VOTER_ID"; export interface GIID { value: string; country: string; issueDate: string; expirationDate: string; giidType: GIIDType; } export interface Profile { name?: Name; localName?: Name; phones: Phone[]; emails: Email[]; dob?: DOB; address?: Address; nationality?: Nationality; giid?: GIID; } export interface Keys { encryptionPublicKey: string; encryptionSecret: string; signingPublicKey: string; signingSecret: string; } export interface OfferCondition { claim?: ClaimDefinition; kind?: string; value?: any; upper?: any; subconditions?: OfferCondition[]; } export interface Dictionary { [key: string]: T; } export type Claims = Dictionary>; export type Func = (...args: T) => TResult; export interface Category { id: string name: string } export interface CompletedBnplProvidersResponse { data: { providers: Provider[] } success: boolean } export interface Provider { appUrl: string categories: Category[] description: string id: string logoUrl: string name: string scopes: string[] } export interface BNPLInfo { isAvailable: boolean offers: Offer[] providers: Provider[] } export interface BnplFilteringOptions { itemCategory?: string; itemCount?: number; totalAmount?: FiatCurrency; }