@lumiapassport/ui-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,798 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import * as viem from 'viem';
5
+ import { Chain, Hash as Hash$1, TransactionReceipt } from 'viem';
6
+ import * as wagmi from 'wagmi';
7
+ import * as _tanstack_react_query from '@tanstack/react-query';
8
+ import { QueryClient } from '@tanstack/react-query';
9
+
10
+ /**
11
+ * LumiaPassport Configuration (library copy)
12
+ * Default config can be overridden via Provider initialConfig
13
+ */
14
+
15
+ declare global {
16
+ interface Window {
17
+ __LUMIA_SERVICES__?: Partial<{
18
+ bundlerUrl: string;
19
+ tssUrl: string;
20
+ shareVaultUrl: string;
21
+ tssRequireWasm: boolean;
22
+ tssWasmDebug: boolean;
23
+ }>;
24
+ __LUMIA_PROJECT_ID__?: string;
25
+ }
26
+ }
27
+ interface SocialProvider {
28
+ id: string;
29
+ name: string;
30
+ enabled: boolean;
31
+ icon: React__default.ComponentType<{
32
+ className?: string;
33
+ }>;
34
+ comingSoon?: boolean;
35
+ meta?: Record<string, any>;
36
+ }
37
+ interface LumiaPassportConfig {
38
+ projectId?: string;
39
+ passkey: {
40
+ enabled: boolean;
41
+ showCreateButton: boolean;
42
+ primaryButtonText: string;
43
+ };
44
+ email: {
45
+ enabled: boolean;
46
+ placeholder: string;
47
+ buttonText: string;
48
+ verificationTitle: string;
49
+ };
50
+ social: {
51
+ enabled: boolean;
52
+ providers: SocialProvider[];
53
+ gridColumns: number;
54
+ };
55
+ wallet: {
56
+ enabled: boolean;
57
+ supportedChains?: number[];
58
+ requireSignature: boolean;
59
+ walletConnectProjectId?: string;
60
+ };
61
+ development: {
62
+ enabled: boolean;
63
+ showOnProduction: boolean;
64
+ };
65
+ ui: {
66
+ title: string;
67
+ subtitle?: string;
68
+ theme: 'light' | 'dark' | 'auto';
69
+ authOrder?: Array<'passkey' | 'email' | 'social'>;
70
+ authOpen?: boolean;
71
+ fonts?: {
72
+ base?: string;
73
+ heading?: string;
74
+ };
75
+ branding: {
76
+ logo?: React__default.ComponentType<{
77
+ size?: number;
78
+ }>;
79
+ tagline: string;
80
+ link?: {
81
+ text: string;
82
+ url: string;
83
+ };
84
+ };
85
+ modal: {
86
+ width: string;
87
+ borderRadius: string;
88
+ };
89
+ };
90
+ network: {
91
+ name: string;
92
+ symbol: string;
93
+ chainId: number;
94
+ rpcUrl: string;
95
+ explorerUrl?: string;
96
+ testnet?: boolean;
97
+ };
98
+ services: {
99
+ bundlerUrl: string;
100
+ tssUrl: string;
101
+ shareVaultUrl: string;
102
+ iframeUrl?: string;
103
+ tssRequireWasm?: boolean;
104
+ tssWasmDebug?: boolean;
105
+ };
106
+ features: {
107
+ mpcSecurity: boolean;
108
+ strictMode: boolean;
109
+ requestDeduplication: boolean;
110
+ kycNeeded?: boolean;
111
+ displayNameNeeded?: boolean;
112
+ };
113
+ warnings: {
114
+ backupWarning: boolean;
115
+ emailNotConnectedWarning: boolean;
116
+ };
117
+ kyc?: {
118
+ provider?: 'sumsub' | 'uaepass' | 'custom';
119
+ options?: Record<string, any>;
120
+ };
121
+ }
122
+
123
+ interface LumiaPassportCallbacks {
124
+ onLumiaPassportConnecting?: (payload: {
125
+ method: 'passkey' | 'email' | 'social' | 'wallet';
126
+ provider?: string;
127
+ }) => void;
128
+ onLumiaPassportConnect?: (payload: {
129
+ address: `0x${string}`;
130
+ session: any;
131
+ }) => void;
132
+ onLumiaPassportAccount?: (payload: {
133
+ userId?: string | null;
134
+ address?: `0x${string}` | null;
135
+ session?: any;
136
+ hasKeyshare?: boolean;
137
+ }) => void;
138
+ onLumiaPassportUpdate?: (payload: {
139
+ providers?: Array<any>;
140
+ }) => void;
141
+ onLumiaPassportDisconnect?: (payload: {
142
+ address?: `0x${string}` | null;
143
+ userId?: string | null;
144
+ }) => void;
145
+ onLumiaPassportError?: (payload: {
146
+ error: Error;
147
+ code?: string;
148
+ message: string;
149
+ }) => void;
150
+ }
151
+ interface LumiaPassportContextType {
152
+ config: LumiaPassportConfig;
153
+ updateConfig: (updates: Partial<LumiaPassportConfig>) => void;
154
+ callbacks?: LumiaPassportCallbacks;
155
+ }
156
+ interface LumiaPassportProviderProps {
157
+ children: React__default.ReactNode;
158
+ projectId?: string;
159
+ initialConfig?: Partial<LumiaPassportConfig>;
160
+ callbacks?: LumiaPassportCallbacks;
161
+ }
162
+ declare const LumiaPassportProvider: React__default.FC<LumiaPassportProviderProps>;
163
+ declare const useLumiaPassportConfig: () => LumiaPassportContextType;
164
+
165
+ interface AccountSession$1 {
166
+ ownerAddress: `0x${string}`;
167
+ smartAccountAddress: `0x${string}`;
168
+ factoryAddress: `0x${string}`;
169
+ ownerPrivateKey?: `0x${string}`;
170
+ mpcUserId?: string;
171
+ usePaymaster?: boolean;
172
+ kind: 'lumia';
173
+ address: `0x${string}`;
174
+ }
175
+ declare function sendUserOperation(session: AccountSession$1, callTarget: `0x${string}`, amountWei: string, innerData?: `0x${string}`, feeType?: 'economy' | 'standard' | 'fast', entryPointVersion?: 'v0.6' | 'v0.7'): Promise<`0x${string}`>;
176
+
177
+ type AccountSession = AccountSession$1;
178
+ interface SessionState {
179
+ session: AccountSession | null;
180
+ address: `0x${string}` | null;
181
+ status: string;
182
+ error: string | null;
183
+ setSession: (s: AccountSession | null) => void;
184
+ setAddress: (a: `0x${string}` | null) => void;
185
+ setStatus: (s: string) => void;
186
+ setError: (e: string | null) => void;
187
+ }
188
+ interface LumiaSessionProviderProps {
189
+ children: React__default.ReactNode;
190
+ }
191
+ declare const LumiaSessionProvider: React__default.FC<LumiaSessionProviderProps>;
192
+ declare function useLumiaSession(): SessionState;
193
+
194
+ interface LumiaWagmiProviderProps {
195
+ children: React__default.ReactNode;
196
+ }
197
+ declare const LumiaWagmiProvider: React__default.FC<LumiaWagmiProviderProps>;
198
+
199
+ interface LumiaRainbowKitProviderProps {
200
+ children: React__default.ReactNode;
201
+ }
202
+ declare const LumiaRainbowKitProvider: React__default.FC<LumiaRainbowKitProviderProps>;
203
+
204
+ interface ConnectWalletButtonProps {
205
+ className?: string;
206
+ label?: string;
207
+ usePaymaster?: boolean;
208
+ authOpen?: boolean;
209
+ mode?: 'default' | 'compact';
210
+ callbacks?: LumiaPassportCallbacks;
211
+ onConnected?: (params: {
212
+ address: `0x${string}`;
213
+ session: any;
214
+ }) => void;
215
+ }
216
+ declare const ConnectWalletButton: React__default.FC<ConnectWalletButtonProps>;
217
+
218
+ /**
219
+ * Theme toggle component for testing dark/light/auto mode
220
+ * This is a demo component to showcase theme switching
221
+ */
222
+ declare const ThemeToggle: React__default.FC;
223
+
224
+ interface LumiaLogoProps {
225
+ size?: number;
226
+ className?: string;
227
+ }
228
+ declare const LumiaLogo: React__default.FC<LumiaLogoProps>;
229
+
230
+ type Theme = 'light' | 'dark' | 'auto';
231
+ /**
232
+ * Hook for managing theme detection and CSS classes
233
+ */
234
+ declare function useTheme(configTheme: Theme): {
235
+ theme: "light" | "dark";
236
+ isDark: boolean;
237
+ classes: {
238
+ modalBg: string;
239
+ titleText: string;
240
+ bodyText: string;
241
+ mutedText: string;
242
+ linkText: string;
243
+ inputBg: string;
244
+ inputText: string;
245
+ primaryBtn: string;
246
+ secondaryBtn: string;
247
+ outlineBtn: string;
248
+ actionBtn: string;
249
+ divider: string;
250
+ errorText: string;
251
+ successText: string;
252
+ iconColor: string;
253
+ };
254
+ };
255
+
256
+ type ChainLike$2 = {
257
+ id: number;
258
+ blockExplorers?: {
259
+ default?: {
260
+ url: string;
261
+ };
262
+ };
263
+ };
264
+ type UserOpStatusProps = {
265
+ userOpHash: `0x${string}` | string;
266
+ chain?: ChainLike$2;
267
+ className?: string;
268
+ pollMs?: number;
269
+ maxPollTimeMs?: number;
270
+ externalState?: {
271
+ receipt?: any | null;
272
+ mempool?: any | null;
273
+ error?: string | null;
274
+ isPolling?: boolean;
275
+ };
276
+ };
277
+ declare const UserOpStatus: React.FC<UserOpStatusProps>;
278
+
279
+ type ChainLike$1 = {
280
+ id: number;
281
+ blockExplorers?: {
282
+ default?: {
283
+ url: string;
284
+ };
285
+ };
286
+ };
287
+ type HashProps = {
288
+ hash?: `0x${string}` | string | null;
289
+ chain?: ChainLike$1;
290
+ className?: string;
291
+ truncate?: boolean;
292
+ showCopy?: boolean;
293
+ showExplorer?: boolean;
294
+ kind?: 'tx' | 'address' | 'block';
295
+ label?: string;
296
+ };
297
+ declare const Hash: React.FC<HashProps>;
298
+
299
+ type ChainLike = {
300
+ id: number;
301
+ blockExplorers?: {
302
+ default?: {
303
+ url: string;
304
+ };
305
+ };
306
+ };
307
+ type AddressProps = {
308
+ address?: `0x${string}` | string | null;
309
+ chain?: ChainLike;
310
+ className?: string;
311
+ truncate?: boolean;
312
+ showCopy?: boolean;
313
+ showExplorer?: boolean;
314
+ label?: string;
315
+ };
316
+ declare const Address: React.FC<AddressProps>;
317
+
318
+ interface TransactionsListProps {
319
+ address: string;
320
+ itemsCount?: number;
321
+ }
322
+ declare const TransactionsList: React__default.FC<TransactionsListProps>;
323
+
324
+ interface KeyshareBackupProps {
325
+ userId: string;
326
+ onClose?: () => void;
327
+ onBackupSuccess?: () => void;
328
+ }
329
+ declare function KeyshareBackup({ userId, onClose, onBackupSuccess }: KeyshareBackupProps): react_jsx_runtime.JSX.Element;
330
+
331
+ interface SendTransactionParams$1 {
332
+ to: `0x${string}`;
333
+ value: string;
334
+ data?: `0x${string}`;
335
+ }
336
+ interface UseSendTransactionReturn {
337
+ sendTransaction: (params: SendTransactionParams$1) => Promise<string | null>;
338
+ isLoading: boolean;
339
+ error: string | null;
340
+ userOpHash: string | null;
341
+ reset: () => void;
342
+ }
343
+ declare function useSendTransaction(): UseSendTransactionReturn;
344
+
345
+ interface UserOpReceipt {
346
+ userOpHash: `0x${string}`;
347
+ sender: `0x${string}`;
348
+ nonce: string;
349
+ actualGasUsed: string;
350
+ actualGasCost: string;
351
+ success: boolean;
352
+ receipt?: {
353
+ transactionHash: `0x${string}`;
354
+ blockNumber: string;
355
+ blockHash: string;
356
+ logs: any[];
357
+ };
358
+ }
359
+ interface UserOpMempool {
360
+ entryPoint: `0x${string}` | null;
361
+ sender: `0x${string}` | null;
362
+ }
363
+ type UserOpState = 'waiting' | 'pending' | 'included' | 'failed' | 'rejected' | 'timeout';
364
+ interface UseUserOpStatusOptions {
365
+ userOpHash?: `0x${string}` | string | null;
366
+ pollMs?: number;
367
+ maxPollTimeMs?: number;
368
+ enabled?: boolean;
369
+ onStateChange?: (state: UserOpState) => void;
370
+ onReceipt?: (receipt: UserOpReceipt) => void;
371
+ onTxHash?: (txHash: `0x${string}`) => void;
372
+ }
373
+ interface UseUserOpStatusReturn {
374
+ state: UserOpState;
375
+ receipt: UserOpReceipt | null;
376
+ mempool: UserOpMempool | null;
377
+ txHash: `0x${string}` | null;
378
+ error: string | null;
379
+ isPolling: boolean;
380
+ refresh: () => Promise<void>;
381
+ }
382
+ declare function useUserOpStatus(options?: UseUserOpStatusOptions): UseUserOpStatusReturn;
383
+
384
+ declare const LUMIA_EXPLORER_URL: string;
385
+ declare const lumiaBeam: Chain;
386
+
387
+ interface UserProfile {
388
+ userId: string;
389
+ displayName?: string;
390
+ avatar?: string;
391
+ providers: Array<{
392
+ type: string;
393
+ identifier: string;
394
+ connectedAt: string;
395
+ }>;
396
+ createdAt: string;
397
+ updatedAt: string;
398
+ hasKeyshare: boolean;
399
+ }
400
+ interface UpdateProfileRequest {
401
+ displayName?: string;
402
+ }
403
+ /**
404
+ * Get user profile
405
+ */
406
+ declare function getUserProfile(): Promise<UserProfile>;
407
+ /**
408
+ * Update user profile
409
+ */
410
+ declare function updateUserProfile(updates: UpdateProfileRequest): Promise<UserProfile>;
411
+
412
+ declare const queryClient: QueryClient;
413
+ declare const wagmiConfig: wagmi.Config<readonly [viem.Chain], {
414
+ [lumiaBeam.id]: viem.HttpTransport<undefined, false>;
415
+ }, readonly wagmi.CreateConnectorFn[]>;
416
+
417
+ interface Transaction {
418
+ hash: Hash$1;
419
+ from: string;
420
+ to: string | null;
421
+ value: string;
422
+ gasUsed: string;
423
+ gasPrice: string;
424
+ blockNumber: bigint;
425
+ timestamp: number;
426
+ status: 'success' | 'failed' | 'pending';
427
+ }
428
+ interface SendTransactionParams {
429
+ to: `0x${string}`;
430
+ value: string;
431
+ data?: `0x${string}`;
432
+ }
433
+ interface SendTransactionResult {
434
+ hash: Hash$1;
435
+ wait: () => Promise<TransactionReceipt>;
436
+ }
437
+ declare function useTransactions(): {
438
+ sendTransaction: (params: SendTransactionParams) => Promise<SendTransactionResult>;
439
+ getTransaction: (hash: Hash$1) => Promise<{
440
+ input: viem.Hex;
441
+ s: viem.Hex;
442
+ from: viem.Address;
443
+ gas: bigint;
444
+ nonce: number;
445
+ to: viem.Address | null;
446
+ type: "legacy";
447
+ value: bigint;
448
+ r: viem.Hex;
449
+ v: bigint;
450
+ yParity?: undefined;
451
+ blobVersionedHashes?: undefined;
452
+ gasPrice: bigint;
453
+ maxFeePerBlobGas?: undefined;
454
+ maxFeePerGas?: undefined;
455
+ maxPriorityFeePerGas?: undefined;
456
+ chainId?: number;
457
+ accessList?: undefined;
458
+ authorizationList?: undefined;
459
+ hash: Hash$1;
460
+ typeHex: viem.Hex | null;
461
+ blockHash: `0x${string}`;
462
+ blockNumber: bigint;
463
+ transactionIndex: number;
464
+ } | {
465
+ input: viem.Hex;
466
+ s: viem.Hex;
467
+ from: viem.Address;
468
+ gas: bigint;
469
+ nonce: number;
470
+ to: viem.Address | null;
471
+ type: "eip2930";
472
+ value: bigint;
473
+ r: viem.Hex;
474
+ v: bigint;
475
+ yParity: number;
476
+ blobVersionedHashes?: undefined;
477
+ gasPrice: bigint;
478
+ maxFeePerBlobGas?: undefined;
479
+ maxFeePerGas?: undefined;
480
+ maxPriorityFeePerGas?: undefined;
481
+ chainId: number;
482
+ accessList: viem.AccessList;
483
+ authorizationList?: undefined;
484
+ hash: Hash$1;
485
+ typeHex: viem.Hex | null;
486
+ blockHash: `0x${string}`;
487
+ blockNumber: bigint;
488
+ transactionIndex: number;
489
+ } | {
490
+ input: viem.Hex;
491
+ s: viem.Hex;
492
+ from: viem.Address;
493
+ gas: bigint;
494
+ nonce: number;
495
+ to: viem.Address | null;
496
+ type: "eip1559";
497
+ value: bigint;
498
+ r: viem.Hex;
499
+ v: bigint;
500
+ yParity: number;
501
+ blobVersionedHashes?: undefined;
502
+ gasPrice?: undefined;
503
+ maxFeePerBlobGas?: undefined;
504
+ maxFeePerGas: bigint;
505
+ maxPriorityFeePerGas: bigint;
506
+ chainId: number;
507
+ accessList: viem.AccessList;
508
+ authorizationList?: undefined;
509
+ hash: Hash$1;
510
+ typeHex: viem.Hex | null;
511
+ blockHash: `0x${string}`;
512
+ blockNumber: bigint;
513
+ transactionIndex: number;
514
+ } | {
515
+ input: viem.Hex;
516
+ s: viem.Hex;
517
+ from: viem.Address;
518
+ gas: bigint;
519
+ nonce: number;
520
+ to: viem.Address | null;
521
+ type: "eip4844";
522
+ value: bigint;
523
+ r: viem.Hex;
524
+ v: bigint;
525
+ yParity: number;
526
+ blobVersionedHashes: readonly viem.Hex[];
527
+ gasPrice?: undefined;
528
+ maxFeePerBlobGas: bigint;
529
+ maxFeePerGas: bigint;
530
+ maxPriorityFeePerGas: bigint;
531
+ chainId: number;
532
+ accessList: viem.AccessList;
533
+ authorizationList?: undefined;
534
+ hash: Hash$1;
535
+ typeHex: viem.Hex | null;
536
+ blockHash: `0x${string}`;
537
+ blockNumber: bigint;
538
+ transactionIndex: number;
539
+ } | {
540
+ input: viem.Hex;
541
+ s: viem.Hex;
542
+ from: viem.Address;
543
+ gas: bigint;
544
+ nonce: number;
545
+ to: viem.Address | null;
546
+ type: "eip7702";
547
+ value: bigint;
548
+ r: viem.Hex;
549
+ v: bigint;
550
+ yParity: number;
551
+ blobVersionedHashes?: undefined;
552
+ gasPrice?: undefined;
553
+ maxFeePerBlobGas?: undefined;
554
+ maxFeePerGas: bigint;
555
+ maxPriorityFeePerGas: bigint;
556
+ chainId: number;
557
+ accessList: viem.AccessList;
558
+ authorizationList: viem.SignedAuthorizationList;
559
+ hash: Hash$1;
560
+ typeHex: viem.Hex | null;
561
+ blockHash: `0x${string}`;
562
+ blockNumber: bigint;
563
+ transactionIndex: number;
564
+ }>;
565
+ getTransactionReceipt: (hash: Hash$1) => Promise<TransactionReceipt>;
566
+ getTransactionHistory: (address: `0x${string}`, limit?: number) => Promise<Transaction[]>;
567
+ address: `0x${string}`;
568
+ isConnected: boolean;
569
+ };
570
+
571
+ interface TokenBalance {
572
+ address: `0x${string}`;
573
+ name: string;
574
+ symbol: string;
575
+ decimals: number;
576
+ balance: string;
577
+ formattedBalance: string;
578
+ logo?: string;
579
+ }
580
+ interface Asset {
581
+ type: 'native' | 'erc20' | 'erc721' | 'erc1155';
582
+ address?: `0x${string}`;
583
+ name: string;
584
+ symbol: string;
585
+ balance: string;
586
+ formattedBalance: string;
587
+ decimals?: number;
588
+ tokenId?: string;
589
+ logo?: string;
590
+ }
591
+ declare function useAssets(address?: `0x${string}`): {
592
+ nativeBalance: {
593
+ decimals: number;
594
+ formatted: string;
595
+ symbol: string;
596
+ value: bigint;
597
+ };
598
+ tokenBalances: any;
599
+ assets: Asset[];
600
+ getTokenBalance: (tokenAddress: `0x${string}`) => {
601
+ address: `0x${string}`;
602
+ name: string;
603
+ symbol: string;
604
+ decimals: number;
605
+ balance: string;
606
+ formattedBalance: string;
607
+ logo: string;
608
+ };
609
+ refreshBalances: () => Promise<void>;
610
+ isLoading: any;
611
+ isConnected: boolean;
612
+ };
613
+ declare function useTokenInfo(tokenAddress: `0x${string}`): {
614
+ isLoading: any;
615
+ tokenInfo: any;
616
+ } | {
617
+ isLoading: boolean;
618
+ tokenInfo: {
619
+ name: string;
620
+ symbol: string;
621
+ decimals: number;
622
+ address: `0x${string}`;
623
+ };
624
+ };
625
+ declare function useTokenBalance(tokenAddress: `0x${string}`, userAddress?: `0x${string}`): {
626
+ balance: bigint;
627
+ formattedBalance: string;
628
+ tokenInfo: any;
629
+ isLoading: boolean;
630
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<bigint, viem.ReadContractErrorType>>;
631
+ };
632
+
633
+ interface UserOperation {
634
+ hash: Hash$1;
635
+ sender: `0x${string}`;
636
+ nonce: bigint;
637
+ success: boolean;
638
+ actualGasCost: bigint;
639
+ blockNumber: bigint;
640
+ timestamp: number;
641
+ transactionHash: Hash$1;
642
+ }
643
+ declare function useSmartAccountTransactions(): {
644
+ getUserOperations: (address: `0x${string}`, fromBlock?: bigint | "earliest", toBlock?: bigint | "latest") => Promise<UserOperation[]>;
645
+ getRecentUserOperations: (address: `0x${string}`, limit?: number) => Promise<UserOperation[]>;
646
+ getTransactionDetails: (txHash: Hash$1) => Promise<{
647
+ transaction: {
648
+ input: viem.Hex;
649
+ s: viem.Hex;
650
+ from: viem.Address;
651
+ gas: bigint;
652
+ nonce: number;
653
+ to: viem.Address | null;
654
+ type: "legacy";
655
+ value: bigint;
656
+ r: viem.Hex;
657
+ v: bigint;
658
+ yParity?: undefined;
659
+ blobVersionedHashes?: undefined;
660
+ gasPrice: bigint;
661
+ maxFeePerBlobGas?: undefined;
662
+ maxFeePerGas?: undefined;
663
+ maxPriorityFeePerGas?: undefined;
664
+ chainId?: number;
665
+ accessList?: undefined;
666
+ authorizationList?: undefined;
667
+ hash: Hash$1;
668
+ typeHex: viem.Hex | null;
669
+ blockHash: `0x${string}`;
670
+ blockNumber: bigint;
671
+ transactionIndex: number;
672
+ } | {
673
+ input: viem.Hex;
674
+ s: viem.Hex;
675
+ from: viem.Address;
676
+ gas: bigint;
677
+ nonce: number;
678
+ to: viem.Address | null;
679
+ type: "eip2930";
680
+ value: bigint;
681
+ r: viem.Hex;
682
+ v: bigint;
683
+ yParity: number;
684
+ blobVersionedHashes?: undefined;
685
+ gasPrice: bigint;
686
+ maxFeePerBlobGas?: undefined;
687
+ maxFeePerGas?: undefined;
688
+ maxPriorityFeePerGas?: undefined;
689
+ chainId: number;
690
+ accessList: viem.AccessList;
691
+ authorizationList?: undefined;
692
+ hash: Hash$1;
693
+ typeHex: viem.Hex | null;
694
+ blockHash: `0x${string}`;
695
+ blockNumber: bigint;
696
+ transactionIndex: number;
697
+ } | {
698
+ input: viem.Hex;
699
+ s: viem.Hex;
700
+ from: viem.Address;
701
+ gas: bigint;
702
+ nonce: number;
703
+ to: viem.Address | null;
704
+ type: "eip1559";
705
+ value: bigint;
706
+ r: viem.Hex;
707
+ v: bigint;
708
+ yParity: number;
709
+ blobVersionedHashes?: undefined;
710
+ gasPrice?: undefined;
711
+ maxFeePerBlobGas?: undefined;
712
+ maxFeePerGas: bigint;
713
+ maxPriorityFeePerGas: bigint;
714
+ chainId: number;
715
+ accessList: viem.AccessList;
716
+ authorizationList?: undefined;
717
+ hash: Hash$1;
718
+ typeHex: viem.Hex | null;
719
+ blockHash: `0x${string}`;
720
+ blockNumber: bigint;
721
+ transactionIndex: number;
722
+ } | {
723
+ input: viem.Hex;
724
+ s: viem.Hex;
725
+ from: viem.Address;
726
+ gas: bigint;
727
+ nonce: number;
728
+ to: viem.Address | null;
729
+ type: "eip4844";
730
+ value: bigint;
731
+ r: viem.Hex;
732
+ v: bigint;
733
+ yParity: number;
734
+ blobVersionedHashes: readonly viem.Hex[];
735
+ gasPrice?: undefined;
736
+ maxFeePerBlobGas: bigint;
737
+ maxFeePerGas: bigint;
738
+ maxPriorityFeePerGas: bigint;
739
+ chainId: number;
740
+ accessList: viem.AccessList;
741
+ authorizationList?: undefined;
742
+ hash: Hash$1;
743
+ typeHex: viem.Hex | null;
744
+ blockHash: `0x${string}`;
745
+ blockNumber: bigint;
746
+ transactionIndex: number;
747
+ } | {
748
+ input: viem.Hex;
749
+ s: viem.Hex;
750
+ from: viem.Address;
751
+ gas: bigint;
752
+ nonce: number;
753
+ to: viem.Address | null;
754
+ type: "eip7702";
755
+ value: bigint;
756
+ r: viem.Hex;
757
+ v: bigint;
758
+ yParity: number;
759
+ blobVersionedHashes?: undefined;
760
+ gasPrice?: undefined;
761
+ maxFeePerBlobGas?: undefined;
762
+ maxFeePerGas: bigint;
763
+ maxPriorityFeePerGas: bigint;
764
+ chainId: number;
765
+ accessList: viem.AccessList;
766
+ authorizationList: viem.SignedAuthorizationList;
767
+ hash: Hash$1;
768
+ typeHex: viem.Hex | null;
769
+ blockHash: `0x${string}`;
770
+ blockNumber: bigint;
771
+ transactionIndex: number;
772
+ };
773
+ receipt: viem.TransactionReceipt;
774
+ }>;
775
+ };
776
+
777
+ interface AuthProvider {
778
+ provider: 'passkey' | 'email' | 'telegram' | 'google' | 'discord' | 'twitter' | 'wallet';
779
+ verified: boolean;
780
+ linkedAt: string;
781
+ lastUsedAt?: string;
782
+ externalId: string;
783
+ }
784
+
785
+ interface LinkedProfileDisplay extends AuthProvider {
786
+ displayName: string;
787
+ icon?: string;
788
+ color?: string;
789
+ }
790
+ declare function useLumiaPassportLinkedProfiles(): {
791
+ readonly profiles: LinkedProfileDisplay[];
792
+ readonly avatar: string;
793
+ readonly isLoading: boolean;
794
+ readonly error: string;
795
+ readonly refresh: () => Promise<void>;
796
+ };
797
+
798
+ export { type AccountSession$1 as AccountSession, Address, type AddressProps, type Asset, ConnectWalletButton, type ConnectWalletButtonProps, Hash, type HashProps, KeyshareBackup, LUMIA_EXPLORER_URL, LumiaLogo, type LumiaPassportCallbacks, type LumiaPassportConfig, LumiaPassportProvider, type LumiaPassportProviderProps, LumiaRainbowKitProvider, type LumiaRainbowKitProviderProps, LumiaSessionProvider, type LumiaSessionProviderProps, LumiaWagmiProvider, type SendTransactionParams, type SendTransactionResult, type Theme, ThemeToggle, type TokenBalance, type Transaction, TransactionsList, type UpdateProfileRequest, type UseSendTransactionReturn, type UseUserOpStatusOptions, type UseUserOpStatusReturn, type UserOpMempool, type UserOpReceipt, type SendTransactionParams$1 as UserOpSendTransactionParams, type UserOpState, UserOpStatus, type UserOpStatusProps, type UserOperation, type UserProfile, getUserProfile, lumiaBeam, queryClient, sendUserOperation, updateUserProfile, useAssets, useLumiaPassportConfig, useLumiaPassportLinkedProfiles, useLumiaSession, useSendTransaction, useSmartAccountTransactions, useTheme, useTokenBalance, useTokenInfo, useTransactions, useUserOpStatus, wagmiConfig };