UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

1,121 lines (1,120 loc) 66.3 kB
import type { WalletwithdrawquotequotationResponse as WithdrawalQuotation } from '@bluvo/sdk-ts'; import { BluvoExchangeStatus, type BluvoExchangeType } from '../consts/bluvo'; import { type FunkitActiveCheckoutItem } from '../providers/FunkitCheckoutContext'; import type { FunBrokerageItemProps } from '../components/FunSelectBrokerage/FunBrokerageItem'; type SupportedExchangeOption = FunBrokerageItemProps & { exchange: BluvoExchangeType; status: BluvoExchangeStatus; }; type BluvoCheckoutQuoteParams = { chainId: FunkitActiveCheckoutItem['selectedSourceAssetInfo']['chainId']; symbol: FunkitActiveCheckoutItem['selectedSourceAssetInfo']['symbol']; amount: string; }; export type BluvoBrokerageQuote = WithdrawalQuotation & { availableTokenAmount: number; }; export declare const useBluvoExchangeBalance: ({ exchange, refetchOnMount, }: { exchange: BluvoExchangeType | undefined; refetchOnMount?: boolean; }) => { data: import("../domains/wallet").AssetHoldingsMap<import("../domains/wallet").BrokerageAssetHoldingsItem> | undefined; totalBalance: number; isLoading: boolean; isError: boolean; }; export declare const useBluvoCheckoutQuote: () => { getBluvoCheckoutQuote: ({ amount, symbol, chainId, }: BluvoCheckoutQuoteParams) => Promise<BluvoBrokerageQuote | undefined>; }; export declare const useBluvoSupportedExchanges: ({ fullInfo, iconSize, filterBy, }: { fullInfo?: boolean; iconSize?: number; filterBy?: BluvoExchangeStatus[]; }) => { exchangeOptions: ReadonlyArray<SupportedExchangeOption>; }; export declare const useBluvo: () => { exchangeType: BluvoExchangeType | undefined; bluvoClient: { listExchanges: (status?: "live" | "offline" | "maintenance" | "coming_soon") => Promise<any[] | null>; startWithdrawalFlow: (flowOptions: import("@bluvo/sdk-ts").WithdrawalFlowOptions) => Promise<{ machine: import("@bluvo/sdk-ts").Machine<import("@bluvo/sdk-ts").FlowState, import("@bluvo/sdk-ts").FlowActionType>; closeOAuthWindow: null; } | { machine: import("@bluvo/sdk-ts").Machine<import("@bluvo/sdk-ts").FlowState, import("@bluvo/sdk-ts").FlowActionType>; closeOAuthWindow: () => void; }>; resumeWithdrawalFlow: (flowOptions: import("@bluvo/sdk-ts").ResumeWithdrawalFlowOptions) => Promise<{ machine: import("@bluvo/sdk-ts").Machine<import("@bluvo/sdk-ts").FlowState, import("@bluvo/sdk-ts").FlowActionType>; closeOAuthWindow: null; }>; silentResumeWithdrawalFlow: (flowOptions: import("@bluvo/sdk-ts").SilentResumeWithdrawalFlowOptions) => Promise<{ machine: import("@bluvo/sdk-ts").Machine<import("@bluvo/sdk-ts").FlowState, import("@bluvo/sdk-ts").FlowActionType>; } | null>; requestQuote: (options: import("@bluvo/sdk-ts").QuoteRequestOptions) => Promise<{ success: boolean; error: string; type?: undefined; rawQuote?: undefined; quoteData?: undefined; result?: undefined; } | { success: boolean; error: string; type: import("@bluvo/sdk-ts").TypeEnum2; rawQuote?: undefined; quoteData?: undefined; result?: undefined; } | { rawQuote: { id: string; asset: string; amountWithFee?: number | null; amountNoFee?: number | null; estimatedFee?: number | null; amountWithFeeInFiat?: number | null; amountNoFeeInFiat?: number | null; estimatedFeeInFiat?: number | null; destinationAddress: string; network?: string | null; tag?: string | null; estimatedTotal?: number; feeDetails?: Array<{ category: import("@bluvo/sdk-ts").CategoryEnum; currency: string; amount: number; amountInFiat?: number | null; fiatCurrency: string; }>; expiresAt: string; additionalInfo: { minWithdrawal: string | null; maxWithdrawal?: string | null; }; }; quoteData: { id: string; asset: string; amount: string; estimatedFee: string; estimatedTotal: string; amountWithFeeInFiat: string; amountNoFeeInFiat: string; estimatedFeeInFiat: string; additionalInfo: { minWithdrawal: string | null; maxWithdrawal?: string | null; }; expiresAt: number; }; success: boolean; result: { rawQuote: { id: string; asset: string; amountWithFee?: number | null; amountNoFee?: number | null; estimatedFee?: number | null; amountWithFeeInFiat?: number | null; amountNoFeeInFiat?: number | null; estimatedFeeInFiat?: number | null; destinationAddress: string; network?: string | null; tag?: string | null; estimatedTotal?: number; feeDetails?: Array<{ category: import("@bluvo/sdk-ts").CategoryEnum; currency: string; amount: number; amountInFiat?: number | null; fiatCurrency: string; }>; expiresAt: string; additionalInfo: { minWithdrawal: string | null; maxWithdrawal?: string | null; }; }; quoteData: { id: string; asset: string; amount: string; estimatedFee: string; estimatedTotal: string; amountWithFeeInFiat: string; amountNoFeeInFiat: string; estimatedFeeInFiat: string; additionalInfo: { minWithdrawal: string | null; maxWithdrawal?: string | null; }; expiresAt: number; }; }; error?: undefined; type?: undefined; }>; executeWithdrawal: (quoteId: string) => Promise<{ success: boolean; error: string; type?: undefined; } | { success: boolean; error: any; type: import("@bluvo/sdk-ts").TypeEnum2; } | { success: boolean; result: { success: boolean; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; result?: { transactionId: string; [key: string]: unknown | string; } | { bizNo: string; steps: Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }>; relation: import("@bluvo/sdk-ts").RelationEnum; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }> | import("@bluvo/sdk-ts").RelationEnum | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { bizNo?: string; steps?: Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }>; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }> | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { valid2FAMethods: Array<string>; [key: string]: unknown | Array<string>; } | { [key: string]: unknown; }; } | null | undefined; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; }>; submit2FA: (code: string) => Promise<{ success: boolean; error: string; type?: undefined; } | { success: boolean; error: any; type: import("@bluvo/sdk-ts").TypeEnum2; } | { success: boolean; result: { success: boolean; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; result?: { transactionId: string; [key: string]: unknown | string; } | { bizNo: string; steps: Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }>; relation: import("@bluvo/sdk-ts").RelationEnum; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }> | import("@bluvo/sdk-ts").RelationEnum | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { bizNo?: string; steps?: Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }>; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }> | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { valid2FAMethods: Array<string>; [key: string]: unknown | Array<string>; } | { [key: string]: unknown; }; } | null | undefined; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; }>; submit2FAMultiStep: (stepType: "GOOGLE" | "EMAIL" | "SMS", code: string) => Promise<{ success: boolean; error: string; type?: undefined; result?: undefined; } | { success: boolean; error: any; type: import("@bluvo/sdk-ts").TypeEnum2; result?: undefined; } | { success: boolean; result: { success: boolean; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; result?: { transactionId: string; [key: string]: unknown | string; } | { bizNo: string; steps: Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }>; relation: import("@bluvo/sdk-ts").RelationEnum; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }> | import("@bluvo/sdk-ts").RelationEnum | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { bizNo?: string; steps?: Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }>; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }> | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { valid2FAMethods: Array<string>; [key: string]: unknown | Array<string>; } | { [key: string]: unknown; }; } | null | undefined; error?: undefined; type?: undefined; }>; pollFaceVerification: () => Promise<{ success: boolean; error: string; type?: undefined; result?: undefined; } | { success: boolean; error: any; type: import("@bluvo/sdk-ts").TypeEnum2; result?: undefined; } | { success: boolean; result: { success: boolean; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; result?: { transactionId: string; [key: string]: unknown | string; } | { bizNo: string; steps: Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }>; relation: import("@bluvo/sdk-ts").RelationEnum; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }> | import("@bluvo/sdk-ts").RelationEnum | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { bizNo?: string; steps?: Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }>; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }> | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { valid2FAMethods: Array<string>; [key: string]: unknown | Array<string>; } | { [key: string]: unknown; }; } | null | undefined; error?: undefined; type?: undefined; }>; confirmWithdrawal: () => Promise<{ success: boolean; error: string; type?: undefined; result?: undefined; } | { success: boolean; error: any; type: import("@bluvo/sdk-ts").TypeEnum2; result?: undefined; } | { success: boolean; result: { success: boolean; error?: string; type?: import("@bluvo/sdk-ts").TypeEnum2; result?: { transactionId: string; [key: string]: unknown | string; } | { bizNo: string; steps: Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }>; relation: import("@bluvo/sdk-ts").RelationEnum; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; required: boolean; metadata?: { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; }; [key: string]: unknown | import("@bluvo/sdk-ts").TypeEnum3 | import("@bluvo/sdk-ts").StatusEnum4 | boolean | { email?: string; emailSent?: boolean; qrCodeUrl?: string; qrCodeValidSeconds?: number; [key: string]: unknown | string | boolean | number | undefined; } | undefined; }> | import("@bluvo/sdk-ts").RelationEnum | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; } | undefined; } | { bizNo?: string; steps?: Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }>; mfa?: { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{ method: "EMAIL"; email: string; } | { method: "SMS"; phoneNumber: string; } | { method: "GOOGLE"; } | { method: "FACE"; viaMobile: boolean; }>; }; [key: string]: unknown | string | Array<{ type: string; status: import("@bluvo/sdk-ts").StatusEnum4; error?: string; [key: string]: unknown | string | import("@bluvo/sdk-ts").StatusEnum4 | undefined; }> | { bizNo?: string; verified: { EMAIL?: boolean; SMS?: boolean; GOOGLE?: boolean; FACE?: boolean; }; attempts?: Array<{ method: import("@bluvo/sdk-ts").TypeEnum3; status: import("@bluvo/sdk-ts").StatusEnum4; createdAt: number; validatedAt?: number; expiresAt?: number; success: boolean; }>; methods?: Array<{