@liberfi.io/ui-channels 0.1.9 → 0.1.21

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.
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { z } from '@liberfi.io/ui';
3
3
  import * as _liberfi_io_types from '@liberfi.io/types';
4
- import { Channel, ChannelSource, API, IChannelsClient, Chain, ChannelEvent, Token } from '@liberfi.io/types';
4
+ import { Channel, ChannelSource, API, IChannelsClient, Chain, XEligibilityInfo, ChannelEvent, Token as Token$1 } from '@liberfi.io/types';
5
5
  import * as _tanstack_react_query from '@tanstack/react-query';
6
6
  import { UseQueryOptions, UseInfiniteQueryOptions, InfiniteData, useInfiniteQuery, UseMutationOptions } from '@tanstack/react-query';
7
7
  import * as react from 'react';
@@ -14,7 +14,7 @@ declare global {
14
14
  };
15
15
  }
16
16
  }
17
- declare const _default: "0.1.9";
17
+ declare const _default: "0.1.21";
18
18
 
19
19
  declare const baseFormSchema: z.ZodObject<{
20
20
  name: z.ZodString;
@@ -126,6 +126,437 @@ type SocialsFormUIProps = {
126
126
  };
127
127
  declare function SocialsFormUI({ channel }: SocialsFormUIProps): react_jsx_runtime.JSX.Element;
128
128
 
129
+ type EligibilityCheckItem = {
130
+ label: string;
131
+ value: string;
132
+ status: "pending" | "checking" | "passed" | "failed";
133
+ };
134
+ type CheckEligibilityUIProps = {
135
+ /** X account connection status */
136
+ isConnected: boolean;
137
+ /** Whether currently connecting to X */
138
+ isConnecting: boolean;
139
+ /** X account username (e.g., @trader_joe) */
140
+ xUsername?: string;
141
+ /** Eligibility check items */
142
+ checkItems: Array<EligibilityCheckItem>;
143
+ /** Whether all checks passed */
144
+ allChecksPassed: boolean;
145
+ /** Connect to X handler */
146
+ onConnect: () => void | Promise<void>;
147
+ /** Continue to next step handler */
148
+ onContinue: () => void | Promise<void>;
149
+ /** Cancel handler */
150
+ onCancel: () => void | Promise<void>;
151
+ /** Whether the form is submitting */
152
+ isSubmitting?: boolean;
153
+ /** Custom class name */
154
+ className?: string;
155
+ };
156
+ /**
157
+ * Check Eligibility UI Component
158
+ * Full screen page to verify X account eligibility
159
+ */
160
+ declare function CheckEligibilityUI({ isConnected, isConnecting, xUsername, checkItems, allChecksPassed, onConnect, onContinue, onCancel, isSubmitting, className, }: CheckEligibilityUIProps): react_jsx_runtime.JSX.Element;
161
+
162
+ type XAccountInfo = {
163
+ username: string;
164
+ displayName: string;
165
+ avatar: string;
166
+ bio: string;
167
+ followersCount: number;
168
+ accountAge: number;
169
+ behaviorScore: "clean" | "suspicious";
170
+ };
171
+ type EligibilityCheckStatus = "pending" | "checking" | "passed" | "failed";
172
+ type UseCheckEligibilityScriptParams = {
173
+ /** Minimum followers required */
174
+ minFollowers?: number;
175
+ /** Minimum account age in days */
176
+ minAccountAge?: number;
177
+ /** Optional return URL for OAuth callback */
178
+ returnUrl?: string;
179
+ };
180
+ type UseCheckEligibilityScriptResult = {
181
+ /** Whether connected to X */
182
+ isConnected: boolean;
183
+ /** Whether currently connecting */
184
+ isConnecting: boolean;
185
+ /** X account information */
186
+ accountInfo: XAccountInfo | null;
187
+ /** Check items with status */
188
+ checkItems: Array<{
189
+ label: string;
190
+ value: string;
191
+ status: EligibilityCheckStatus;
192
+ }>;
193
+ /** Whether all checks passed */
194
+ allChecksPassed: boolean;
195
+ /** Authorization URL */
196
+ authorizeUrl: string | null;
197
+ /** Connect to X account */
198
+ connect: () => Promise<void>;
199
+ /** Disconnect X account */
200
+ disconnect: () => Promise<void>;
201
+ /** Verify eligibility */
202
+ verify: () => Promise<boolean>;
203
+ };
204
+ /**
205
+ * Check Eligibility Script Hook
206
+ * Handles X account connection and eligibility verification
207
+ */
208
+ declare function useCheckEligibilityScript({ minFollowers, minAccountAge, returnUrl, }?: UseCheckEligibilityScriptParams): UseCheckEligibilityScriptResult;
209
+
210
+ type CheckEligibilityWidgetProps = {
211
+ /** Callback when eligibility check passed and continue */
212
+ onContinue?: () => void | Promise<void>;
213
+ /** Callback when cancelled */
214
+ onCancel?: () => void | Promise<void>;
215
+ /** Minimum followers required */
216
+ minFollowers?: number;
217
+ /** Minimum account age in days */
218
+ minAccountAge?: number;
219
+ /** Optional return URL for OAuth callback */
220
+ returnUrl?: string;
221
+ /** Custom class name */
222
+ className?: string;
223
+ };
224
+ /**
225
+ * Check Eligibility Widget
226
+ * Combines UI and Script for X account eligibility verification
227
+ */
228
+ declare function CheckEligibilityWidget({ onContinue, onCancel, minFollowers, minAccountAge, returnUrl, className, }: CheckEligibilityWidgetProps): react_jsx_runtime.JSX.Element;
229
+
230
+ type PresetAvatar = {
231
+ id: string;
232
+ url: string;
233
+ };
234
+ type UseChannelBasicInfoScriptParams = {
235
+ /** Initial channel name */
236
+ initialName?: string;
237
+ /** Initial description */
238
+ initialDescription?: string;
239
+ /** Initial avatar URL */
240
+ initialAvatar?: string;
241
+ };
242
+ type UseChannelBasicInfoScriptResult = {
243
+ /** Available preset avatars */
244
+ presetAvatars: PresetAvatar[];
245
+ /** Selected avatar URL */
246
+ selectedAvatar?: string;
247
+ /** Whether selected avatar is custom */
248
+ isCustomAvatar: boolean;
249
+ /** Channel name */
250
+ channelName: string;
251
+ /** Channel name suggestions */
252
+ nameSuggestions: string[];
253
+ /** Description */
254
+ description: string;
255
+ /** Description suggestions */
256
+ descriptionSuggestions: string[];
257
+ /** Whether uploading custom avatar */
258
+ isUploadingAvatar: boolean;
259
+ /** Whether refreshing avatars */
260
+ isRefreshingAvatars: boolean;
261
+ /** Whether refreshing name suggestions */
262
+ isRefreshingNameSuggestions: boolean;
263
+ /** Whether refreshing description suggestions */
264
+ isRefreshingDescriptionSuggestions: boolean;
265
+ /** Select preset or custom avatar */
266
+ selectAvatar: (avatarUrl: string, isCustom: boolean) => void;
267
+ /** Upload custom avatar */
268
+ uploadCustomAvatar: (file: File) => Promise<void>;
269
+ /** Refresh preset avatars (shuffle) */
270
+ refreshPresetAvatars: () => void;
271
+ /** Refresh name suggestions (shuffle) */
272
+ refreshNameSuggestions: () => void;
273
+ /** Refresh description suggestions (shuffle) */
274
+ refreshDescriptionSuggestions: () => void;
275
+ /** Update channel name */
276
+ setChannelName: (name: string) => void;
277
+ /** Apply name suggestion */
278
+ applyNameSuggestion: (suggestion: string) => void;
279
+ /** Update description */
280
+ setDescription: (desc: string) => void;
281
+ /** Apply description suggestion */
282
+ applyDescriptionSuggestion: (suggestion: string) => void;
283
+ /** Validate form */
284
+ validate: () => {
285
+ isValid: boolean;
286
+ errors: string[];
287
+ };
288
+ };
289
+ declare function useChannelBasicInfoScript({ initialName, initialDescription, initialAvatar, }?: UseChannelBasicInfoScriptParams): UseChannelBasicInfoScriptResult;
290
+
291
+ type ChannelBasicInfoUIProps = {
292
+ /** Available preset avatars */
293
+ presetAvatars: PresetAvatar[];
294
+ /** Selected avatar URL (preset or custom) */
295
+ selectedAvatar?: string;
296
+ /** Whether a custom avatar is selected */
297
+ isCustomAvatar?: boolean;
298
+ /** Channel name value */
299
+ channelName: string;
300
+ /** Channel name suggestions */
301
+ nameSuggestions: string[];
302
+ /** Channel description value */
303
+ description: string;
304
+ /** Description character limit */
305
+ descriptionMaxLength?: number;
306
+ /** Description suggestions */
307
+ descriptionSuggestions: string[];
308
+ /** Avatar selection handler */
309
+ onAvatarSelect: (avatarUrl: string, isCustom: boolean) => void;
310
+ /** Custom avatar upload handler */
311
+ onCustomAvatarUpload: (file: File) => Promise<void>;
312
+ /** Whether uploading custom avatar */
313
+ isUploadingAvatar?: boolean;
314
+ /** Whether refreshing avatars */
315
+ isRefreshingAvatars?: boolean;
316
+ /** Refresh avatars handler */
317
+ onRefreshAvatars?: () => void;
318
+ /** Whether refreshing name suggestions */
319
+ isRefreshingNameSuggestions?: boolean;
320
+ /** Refresh name suggestions handler */
321
+ onRefreshNameSuggestions?: () => void;
322
+ /** Whether refreshing description suggestions */
323
+ isRefreshingDescriptionSuggestions?: boolean;
324
+ /** Refresh description suggestions handler */
325
+ onRefreshDescriptionSuggestions?: () => void;
326
+ /** Channel name change handler */
327
+ onChannelNameChange: (value: string) => void;
328
+ /** Name suggestion click handler */
329
+ onNameSuggestionClick: (suggestion: string) => void;
330
+ /** Description change handler */
331
+ onDescriptionChange: (value: string) => void;
332
+ /** Description suggestion click handler */
333
+ onDescriptionSuggestionClick: (suggestion: string) => void;
334
+ /** Back button handler */
335
+ onBack: () => void | Promise<void>;
336
+ /** Continue to next step handler */
337
+ onContinue: () => void | Promise<void>;
338
+ /** Whether the form is submitting */
339
+ isSubmitting?: boolean;
340
+ /** Whether continue button is disabled */
341
+ isContinueDisabled?: boolean;
342
+ /** Custom class name */
343
+ className?: string;
344
+ };
345
+ /**
346
+ * Channel Basic Info UI Component
347
+ * Full screen page for setting up channel avatar, name, and description
348
+ */
349
+ declare function ChannelBasicInfoUI({ presetAvatars, selectedAvatar, isCustomAvatar, channelName, nameSuggestions, description, descriptionMaxLength, descriptionSuggestions, onAvatarSelect, onCustomAvatarUpload, isUploadingAvatar, isRefreshingAvatars, onRefreshAvatars, isRefreshingNameSuggestions, onRefreshNameSuggestions, isRefreshingDescriptionSuggestions, onRefreshDescriptionSuggestions, onChannelNameChange, onNameSuggestionClick, onDescriptionChange, onDescriptionSuggestionClick, onBack, onContinue, isSubmitting, isContinueDisabled, className, }: ChannelBasicInfoUIProps): react_jsx_runtime.JSX.Element;
350
+
351
+ type ChannelBasicInfoWidgetProps = {
352
+ /** Initial channel name */
353
+ initialName?: string;
354
+ /** Initial description */
355
+ initialDescription?: string;
356
+ /** Initial avatar URL */
357
+ initialAvatar?: string;
358
+ /** Callback when back button clicked */
359
+ onBack?: () => void | Promise<void>;
360
+ /** Callback when continue to next step */
361
+ onContinue?: (data: {
362
+ avatar: string;
363
+ isCustomAvatar: boolean;
364
+ name: string;
365
+ description: string;
366
+ }) => void | Promise<void>;
367
+ /** Custom class name */
368
+ className?: string;
369
+ };
370
+ /**
371
+ * Channel Basic Info Widget
372
+ * Combines UI and Script for channel basic information setup
373
+ */
374
+ declare function ChannelBasicInfoWidget({ initialName, initialDescription, initialAvatar, onBack, onContinue, className, }: ChannelBasicInfoWidgetProps): react_jsx_runtime.JSX.Element;
375
+
376
+ type MonitoredWallet = {
377
+ address: string;
378
+ alias?: string;
379
+ balance?: string;
380
+ importedAt: string;
381
+ lastActiveAt?: string;
382
+ sevenDayBuys?: number;
383
+ sevenDaySells?: number;
384
+ };
385
+ type UseWalletImportScriptParams = {
386
+ /** Maximum wallets allowed */
387
+ maxWallets?: number;
388
+ /** Initial monitored wallets */
389
+ initialWallets?: MonitoredWallet[];
390
+ };
391
+ type UseWalletImportScriptResult = {
392
+ /** Wallet input value */
393
+ walletInput: string;
394
+ /** List of monitored wallets */
395
+ monitoredWallets: MonitoredWallet[];
396
+ /** Number of monitored wallets */
397
+ monitoredCount: number;
398
+ /** Whether currently importing */
399
+ isImporting: boolean;
400
+ /** Update wallet input */
401
+ setWalletInput: (value: string) => void;
402
+ /** Add wallets from input */
403
+ addWallets: () => Promise<{
404
+ success: boolean;
405
+ errors?: string[];
406
+ }>;
407
+ /** Add whale wallets */
408
+ addWhaleWallets: () => Promise<void>;
409
+ /** Add smart wallets */
410
+ addSmartWallets: () => Promise<void>;
411
+ /** Remove a wallet */
412
+ removeWallet: (address: string) => Promise<void>;
413
+ /** Validate wallet addresses */
414
+ validate: () => {
415
+ isValid: boolean;
416
+ errors: string[];
417
+ };
418
+ };
419
+ /**
420
+ * Wallet Import Script Hook
421
+ * Handles wallet import and monitoring logic
422
+ *
423
+ * NOTE: This is a placeholder implementation.
424
+ * In production, replace with actual API calls for:
425
+ * - Adding wallets
426
+ * - Fetching wallet balances
427
+ * - Fetching whale/smart wallet lists
428
+ */
429
+ declare function useWalletImportScript({ maxWallets, initialWallets, }?: UseWalletImportScriptParams): UseWalletImportScriptResult;
430
+
431
+ type WalletImportUIProps = {
432
+ /** Wallet addresses input value */
433
+ walletInput: string;
434
+ /** Number of wallets currently being monitored */
435
+ monitoredCount: number;
436
+ /** Maximum wallets allowed */
437
+ maxWallets?: number;
438
+ /** List of monitored wallets */
439
+ monitoredWallets: MonitoredWallet[];
440
+ /** Whether currently importing wallets */
441
+ isImporting?: boolean;
442
+ /** Wallet input change handler */
443
+ onWalletInputChange: (value: string) => void;
444
+ /** Add wallets handler */
445
+ onAddWallets: () => void | Promise<void>;
446
+ /** Quick action: Add Whale Top 100 MEV Wallets */
447
+ onAddWhaleWallets: () => void | Promise<void>;
448
+ /** Quick action: Add Smart Top 50 SOL Wallets */
449
+ onAddSmartWallets: () => void | Promise<void>;
450
+ /** Remove wallet handler */
451
+ onRemoveWallet: (address: string) => void | Promise<void>;
452
+ /** Back button handler */
453
+ onBack: () => void | Promise<void>;
454
+ /** Publish channel handler */
455
+ onPublish: () => void | Promise<void>;
456
+ /** Whether the form is submitting */
457
+ isSubmitting?: boolean;
458
+ /** Whether publish button is disabled */
459
+ isPublishDisabled?: boolean;
460
+ /** Custom class name */
461
+ className?: string;
462
+ };
463
+ /**
464
+ * Wallet Import UI Component
465
+ * Full screen page for importing and managing monitored wallets
466
+ */
467
+ declare function WalletImportUI({ walletInput, monitoredCount, maxWallets, monitoredWallets, isImporting, onWalletInputChange, onAddWallets, onAddWhaleWallets, onAddSmartWallets, onRemoveWallet, onBack, onPublish, isSubmitting, isPublishDisabled, className, }: WalletImportUIProps): react_jsx_runtime.JSX.Element;
468
+
469
+ type WalletImportWidgetProps = {
470
+ /** Maximum wallets allowed */
471
+ maxWallets?: number;
472
+ /** Initial monitored wallets */
473
+ initialWallets?: MonitoredWallet[];
474
+ /** Callback when back button clicked */
475
+ onBack?: () => void | Promise<void>;
476
+ /** Callback when publish channel */
477
+ onPublish?: (wallets: MonitoredWallet[]) => void | Promise<void>;
478
+ /** Custom class name */
479
+ className?: string;
480
+ };
481
+ /**
482
+ * Wallet Import Widget
483
+ * Combines UI and Script for wallet import and monitoring
484
+ */
485
+ declare function WalletImportWidget({ maxWallets, initialWallets, onBack, onPublish, className, }: WalletImportWidgetProps): react_jsx_runtime.JSX.Element;
486
+
487
+ type BotConnectionStatus = "connected" | "not_connected";
488
+ type UseSocialBotsScriptParams = {
489
+ /** Initial Telegram bot status */
490
+ initialTelegramStatus?: BotConnectionStatus;
491
+ /** Initial Discord webhook status */
492
+ initialDiscordStatus?: BotConnectionStatus;
493
+ };
494
+ type UseSocialBotsScriptResult = {
495
+ /** Telegram bot connection status */
496
+ telegramStatus: BotConnectionStatus;
497
+ /** Discord webhook connection status */
498
+ discordStatus: BotConnectionStatus;
499
+ /** Create Telegram bot */
500
+ createTelegramBot: () => Promise<void>;
501
+ /** Add Discord webhook */
502
+ addDiscordWebhook: () => Promise<void>;
503
+ /** Validate configuration */
504
+ validate: () => {
505
+ isValid: boolean;
506
+ errors: string[];
507
+ };
508
+ };
509
+ /**
510
+ * Social Bots Script Hook
511
+ * Handles bot connection state and configuration logic
512
+ *
513
+ * NOTE: This is a placeholder implementation.
514
+ * In production, replace with actual bot integration APIs.
515
+ */
516
+ declare function useSocialBotsScript({ initialTelegramStatus, initialDiscordStatus, }?: UseSocialBotsScriptParams): UseSocialBotsScriptResult;
517
+
518
+ type SocialBotsUIProps = {
519
+ /** Telegram bot connection status */
520
+ telegramStatus: BotConnectionStatus;
521
+ /** Discord webhook connection status */
522
+ discordStatus: BotConnectionStatus;
523
+ /** Create Telegram bot handler */
524
+ onCreateTelegramBot: () => void | Promise<void>;
525
+ /** Add Discord webhook handler */
526
+ onAddDiscordWebhook: () => void | Promise<void>;
527
+ /** Back button handler */
528
+ onBack: () => void | Promise<void>;
529
+ /** Continue to next step handler */
530
+ onContinue: () => void | Promise<void>;
531
+ /** Whether the form is submitting */
532
+ isSubmitting?: boolean;
533
+ /** Custom class name */
534
+ className?: string;
535
+ };
536
+ /**
537
+ * Social Bots UI Component
538
+ * Configuration page for connecting Telegram and Discord bots
539
+ */
540
+ declare function SocialBotsUI({ telegramStatus, discordStatus, onCreateTelegramBot, onAddDiscordWebhook, onBack, onContinue, isSubmitting, className, }: SocialBotsUIProps): react_jsx_runtime.JSX.Element;
541
+
542
+ type SocialBotsWidgetProps = {
543
+ /** Initial Telegram bot status */
544
+ initialTelegramStatus?: "connected" | "not_connected";
545
+ /** Initial Discord webhook status */
546
+ initialDiscordStatus?: "connected" | "not_connected";
547
+ /** Callback when back button clicked */
548
+ onBack?: () => void | Promise<void>;
549
+ /** Callback when continue to next step */
550
+ onContinue?: () => void | Promise<void>;
551
+ /** Custom class name */
552
+ className?: string;
553
+ };
554
+ /**
555
+ * Social Bots Widget
556
+ * Combines UI and Script for social bots configuration
557
+ */
558
+ declare function SocialBotsWidget({ initialTelegramStatus, initialDiscordStatus, onBack, onContinue, className, }: SocialBotsWidgetProps): react_jsx_runtime.JSX.Element;
559
+
129
560
  type ChannelsUIProps = {
130
561
  channels: Array<Channel>;
131
562
  onSelect?: (channel: Channel) => void;
@@ -219,6 +650,510 @@ declare function ChannelDetailWidget({ id, customHeaderActions, customFooterActi
219
650
 
220
651
  declare const useChannelDetail: (id: string) => _tanstack_react_query.UseQueryResult<_liberfi_io_types.Channel, Error>;
221
652
 
653
+ type ChannelDetailStats = {
654
+ signalCount: number;
655
+ subscribers: number;
656
+ someMetric: number;
657
+ activeTime: string;
658
+ };
659
+ type KeyMetric = {
660
+ label: string;
661
+ value: string;
662
+ subValue: string;
663
+ trend: "up" | "down" | "neutral";
664
+ percentage?: string;
665
+ };
666
+ type ChannelDetailData = {
667
+ id: string;
668
+ name: string;
669
+ avatar: string;
670
+ stats: ChannelDetailStats;
671
+ links: {
672
+ twitter?: string;
673
+ axiom?: string;
674
+ };
675
+ creator: {
676
+ name: string;
677
+ time: string;
678
+ };
679
+ metrics: {
680
+ pnl: KeyMetric;
681
+ winRate: KeyMetric;
682
+ txs: KeyMetric;
683
+ };
684
+ };
685
+ type UseChannelDetailNewScriptParams = {
686
+ /** Channel ID */
687
+ channelId: string;
688
+ };
689
+
690
+ type ChannelDetailNewUIProps = {
691
+ /** Channel detail data */
692
+ channelData: ChannelDetailData;
693
+ /** Subscribe handler */
694
+ onSubscribe: () => void | Promise<void>;
695
+ /** Share handler */
696
+ onShare: () => void;
697
+ /** Listen handler */
698
+ onListen: () => void;
699
+ /** Back button handler */
700
+ onBack?: () => void;
701
+ /** Whether subscribing */
702
+ isSubscribing?: boolean;
703
+ /** Custom class name */
704
+ className?: string;
705
+ };
706
+ /**
707
+ * Channel Detail New UI Component
708
+ * Full screen channel detail page with traders table
709
+ */
710
+ declare function ChannelDetailNewUI({ channelData, onSubscribe, onShare, onListen, onBack, isSubscribing, className, }: ChannelDetailNewUIProps): react_jsx_runtime.JSX.Element;
711
+
712
+ type ChannelDetailNewWidgetProps = UseChannelDetailNewScriptParams & {
713
+ /** Back button handler */
714
+ onBack?: () => void;
715
+ /** Custom class name */
716
+ className?: string;
717
+ };
718
+ /**
719
+ * Channel Detail New Widget
720
+ * Combines UI and business logic for channel detail page
721
+ */
722
+ declare function ChannelDetailNewWidget({ channelId, onBack, className, }: ChannelDetailNewWidgetProps): react_jsx_runtime.JSX.Element;
723
+
724
+ type TimeFilter = "4H" | "1D" | "1W" | "1M";
725
+ type SortField = "listeners" | "txns" | "volume" | "pnl";
726
+ type SortDirection = "asc" | "desc";
727
+ type Trader = {
728
+ id: string;
729
+ name: string;
730
+ listeners: number;
731
+ isListening: boolean;
732
+ buyCount: number;
733
+ sellCount: number;
734
+ volume: number;
735
+ buyVolume: number;
736
+ sellVolume: number;
737
+ pnlAmount: number;
738
+ pnlPercentage: number;
739
+ };
740
+ type UseTradersTableScriptParams = {
741
+ /** Initial traders data */
742
+ initialTraders?: Trader[];
743
+ /** Initial time filter */
744
+ initialTimeFilter?: TimeFilter;
745
+ };
746
+
747
+ type TradersTableUIProps = {
748
+ /** List of traders */
749
+ traders: Trader[];
750
+ /** Current time filter */
751
+ timeFilter: TimeFilter;
752
+ /** Time filter change handler */
753
+ onTimeFilterChange: (filter: TimeFilter) => void;
754
+ /** Current sort field */
755
+ sortField: SortField | null;
756
+ /** Current sort direction */
757
+ sortDirection: SortDirection;
758
+ /** Sort handler */
759
+ onSort: (field: SortField) => void;
760
+ /** Toggle listen handler */
761
+ onToggleListen: (traderId: string) => void;
762
+ /** Custom class name */
763
+ className?: string;
764
+ };
765
+ /**
766
+ * Traders Table UI Component
767
+ * Displays traders list with sorting and filtering
768
+ */
769
+ declare function TradersTableUI({ traders, timeFilter, onTimeFilterChange, sortField, sortDirection, onSort, onToggleListen, className, }: TradersTableUIProps): react_jsx_runtime.JSX.Element;
770
+
771
+ type TradersTableWidgetProps = UseTradersTableScriptParams & {
772
+ /** Custom class name */
773
+ className?: string;
774
+ };
775
+ /**
776
+ * Traders Table Widget
777
+ * Combines UI and business logic for traders table
778
+ */
779
+ declare function TradersTableWidget({ initialTraders, initialTimeFilter, className, }: TradersTableWidgetProps): react_jsx_runtime.JSX.Element;
780
+
781
+ type TradeEvent = {
782
+ id: string;
783
+ walletAddress: string;
784
+ walletAlias?: string;
785
+ type: "buy" | "sell";
786
+ amount: number;
787
+ tokenSymbol: string;
788
+ tokenAddress: string;
789
+ price: number;
790
+ cost: number;
791
+ costSymbol: string;
792
+ timestamp: string;
793
+ marketCap: string;
794
+ profitLoss?: number;
795
+ };
796
+ type UseActivityFeedScriptParams = {
797
+ /** Initial trade events */
798
+ initialEvents?: TradeEvent[];
799
+ };
800
+
801
+ type ActivityFeedUIProps = {
802
+ /** Trade events */
803
+ events: TradeEvent[];
804
+ /** Date filter */
805
+ dateFilter: string | null;
806
+ /** Address filter */
807
+ addressFilter: string | null;
808
+ /** Event filter */
809
+ eventFilter: "all" | "buy" | "sell";
810
+ /** Token search query */
811
+ tokenSearch: string;
812
+ /** Set date filter */
813
+ onDateFilterChange: (filter: string | null) => void;
814
+ /** Set address filter */
815
+ onAddressFilterChange: (filter: string | null) => void;
816
+ /** Set event filter */
817
+ onEventFilterChange: (filter: "all" | "buy" | "sell") => void;
818
+ /** Set token search */
819
+ onTokenSearchChange: (query: string) => void;
820
+ /** Custom class name */
821
+ className?: string;
822
+ };
823
+ /**
824
+ * Activity Feed UI Component
825
+ * Displays trade events list with filters
826
+ */
827
+ declare function ActivityFeedUI({ events, tokenSearch, onTokenSearchChange, className, }: ActivityFeedUIProps): react_jsx_runtime.JSX.Element;
828
+
829
+ type ActivityFeedWidgetProps = UseActivityFeedScriptParams & {
830
+ /** Custom class name */
831
+ className?: string;
832
+ };
833
+ /**
834
+ * Activity Feed Widget
835
+ * Combines UI and business logic for activity feed
836
+ */
837
+ declare function ActivityFeedWidget({ initialEvents, className, }: ActivityFeedWidgetProps): react_jsx_runtime.JSX.Element;
838
+
839
+ type Token = {
840
+ id: string;
841
+ name: string;
842
+ symbol: string;
843
+ avatar: string;
844
+ createdTime: string;
845
+ timeLabel: string;
846
+ price: number;
847
+ liquidity: number;
848
+ volume: number;
849
+ buyVolume: number;
850
+ sellVolume: number;
851
+ buyCount: number;
852
+ sellCount: number;
853
+ marketCap: string;
854
+ pnlPercentage: number;
855
+ solAmount: number;
856
+ };
857
+
858
+ type TokensListUIProps = {
859
+ /** List of tokens */
860
+ tokens: Token[];
861
+ /** Custom class name */
862
+ className?: string;
863
+ };
864
+ /**
865
+ * Tokens List UI Component
866
+ * Displays tokens list with trading information
867
+ */
868
+ declare function TokensListUI({ tokens, className }: TokensListUIProps): react_jsx_runtime.JSX.Element;
869
+
870
+ type TokensListWidgetProps = {
871
+ /** Optional custom tokens data */
872
+ tokens?: Token[];
873
+ /** Custom class name */
874
+ className?: string;
875
+ };
876
+ /**
877
+ * Tokens List Widget
878
+ * Combines business logic and UI for tokens list
879
+ */
880
+ declare function TokensListWidget({ tokens: customTokens, className, }: TokensListWidgetProps): react_jsx_runtime.JSX.Element;
881
+
882
+ type TabType = "tokens" | "traders";
883
+
884
+ type TabContainerUIProps = {
885
+ /** Active tab */
886
+ activeTab: TabType;
887
+ /** Tab switch handler */
888
+ onTabSwitch: (tab: TabType) => void;
889
+ /** Tokens count */
890
+ tokensCount?: number;
891
+ /** Traders count */
892
+ tradersCount?: number;
893
+ /** Custom class name */
894
+ className?: string;
895
+ };
896
+ /**
897
+ * Tab Container UI Component
898
+ * Displays tabs for switching between Tokens and Traders
899
+ */
900
+ declare function TabContainerUI({ activeTab, onTabSwitch, tokensCount, tradersCount, className, }: TabContainerUIProps): react_jsx_runtime.JSX.Element;
901
+
902
+ type TabContainerWidgetProps = {
903
+ /** Initial active tab */
904
+ initialTab?: TabType;
905
+ /** Tokens count */
906
+ tokensCount?: number;
907
+ /** Traders count */
908
+ tradersCount?: number;
909
+ /** Custom class name */
910
+ className?: string;
911
+ };
912
+ /**
913
+ * Tab Container Widget
914
+ * Combines tab switching logic and UI
915
+ */
916
+ declare function TabContainerWidget({ initialTab, tokensCount, tradersCount, className, }: TabContainerWidgetProps): react_jsx_runtime.JSX.Element;
917
+
918
+ type ChannelCardData = {
919
+ id: string;
920
+ name: string;
921
+ avatar: string;
922
+ chain: "sol" | "eth" | "bsc" | "all";
923
+ stats: {
924
+ signals: number;
925
+ subscribers: number;
926
+ activeTime: string;
927
+ };
928
+ creator: {
929
+ name: string;
930
+ verified: boolean;
931
+ };
932
+ description: string;
933
+ metrics: {
934
+ pnl: {
935
+ label: string;
936
+ value: string;
937
+ percentage: string;
938
+ isPositive: boolean;
939
+ };
940
+ winRate: {
941
+ label: string;
942
+ value: string;
943
+ wins: number;
944
+ losses: number;
945
+ };
946
+ txs: {
947
+ label: string;
948
+ value: number;
949
+ wins: number;
950
+ losses: number;
951
+ };
952
+ };
953
+ isSubscribed: boolean;
954
+ };
955
+ type FindChannelUIProps = {
956
+ /** List of channels */
957
+ channels: ChannelCardData[];
958
+ /** Selected chain filter */
959
+ selectedChain: string;
960
+ /** Chain filter options */
961
+ chainOptions: {
962
+ value: string;
963
+ label: string;
964
+ }[];
965
+ /** Selected sort option */
966
+ selectedSort: string;
967
+ /** Sort options */
968
+ sortOptions: {
969
+ value: string;
970
+ label: string;
971
+ }[];
972
+ /** Search query */
973
+ searchQuery: string;
974
+ /** Whether user has created channel */
975
+ hasCreatedChannel: boolean;
976
+ /** Chain filter change handler */
977
+ onChainChange: (chain: string) => void;
978
+ /** Sort change handler */
979
+ onSortChange: (sort: string) => void;
980
+ /** Search change handler */
981
+ onSearchChange: (query: string) => void;
982
+ /** Subscribe handler */
983
+ onSubscribe: (channelId: string) => void | Promise<void>;
984
+ /** Channel click handler */
985
+ onChannelClick: (channelId: string) => void;
986
+ /** Create channel handler */
987
+ onCreateChannel?: () => void;
988
+ /** Channel management handler */
989
+ onChannelManagement?: () => void;
990
+ /** Custom class name */
991
+ className?: string;
992
+ };
993
+ /**
994
+ * Find Channel UI Component
995
+ * Displays a list of channels with filtering and search
996
+ */
997
+ declare function FindChannelUI({ channels, selectedChain, chainOptions, selectedSort, sortOptions, searchQuery, hasCreatedChannel, onChainChange, onSortChange, onSearchChange, onSubscribe, onChannelClick, onCreateChannel, onChannelManagement, className, }: FindChannelUIProps): react_jsx_runtime.JSX.Element;
998
+
999
+ type UseFindChannelScriptParams = {
1000
+ /** Initial channels data */
1001
+ channels?: ChannelCardData[];
1002
+ /** Whether user has created a channel */
1003
+ hasCreatedChannel?: boolean;
1004
+ };
1005
+ /**
1006
+ * Business logic for Find Channel page
1007
+ */
1008
+ declare function useFindChannelScript({ channels: initialChannels, hasCreatedChannel, }?: UseFindChannelScriptParams): {
1009
+ channels: ChannelCardData[];
1010
+ selectedChain: string;
1011
+ chainOptions: {
1012
+ value: string;
1013
+ label: string;
1014
+ }[];
1015
+ selectedSort: string;
1016
+ sortOptions: {
1017
+ value: string;
1018
+ label: string;
1019
+ }[];
1020
+ searchQuery: string;
1021
+ hasCreatedChannel: boolean;
1022
+ handleChainChange: (chain: string) => void;
1023
+ handleSortChange: (sort: string) => void;
1024
+ handleSearchChange: (query: string) => void;
1025
+ handleSubscribe: (channelId: string) => void;
1026
+ handleChannelClick: (channelId: string) => void;
1027
+ handleCreateChannel: () => void;
1028
+ handleChannelManagement: () => void;
1029
+ };
1030
+
1031
+ type FindChannelWidgetProps = UseFindChannelScriptParams & {
1032
+ /** Channel click handler */
1033
+ onChannelClick?: (channelId: string) => void;
1034
+ /** Create channel handler */
1035
+ onCreateChannel?: () => void;
1036
+ /** Channel management handler */
1037
+ onChannelManagement?: () => void;
1038
+ /** Custom class name */
1039
+ className?: string;
1040
+ };
1041
+ /**
1042
+ * Find Channel Widget
1043
+ * Combines UI and business logic for channel discovery
1044
+ */
1045
+ declare function FindChannelWidget({ channels, hasCreatedChannel, onChannelClick: externalOnChannelClick, onCreateChannel: externalOnCreateChannel, onChannelManagement: externalOnChannelManagement, className, }: FindChannelWidgetProps): react_jsx_runtime.JSX.Element;
1046
+
1047
+ type SubscribedChannelData = {
1048
+ id: string;
1049
+ name: string;
1050
+ avatar: string;
1051
+ chain: "sol" | "eth" | "bsc" | "all";
1052
+ activeTime: string;
1053
+ pnlPercentage: string;
1054
+ isPositive: boolean;
1055
+ };
1056
+ type MySubscribeUIProps = {
1057
+ /** List of subscribed channels */
1058
+ subscribedChannels: SubscribedChannelData[];
1059
+ /** Selected channel ID */
1060
+ selectedChannelId: string | null;
1061
+ /** Whether sidebar is collapsed */
1062
+ isSidebarCollapsed: boolean;
1063
+ /** Selected chain filter */
1064
+ selectedChain: string;
1065
+ /** Chain filter options */
1066
+ chainOptions: {
1067
+ value: string;
1068
+ label: string;
1069
+ }[];
1070
+ /** Selected sort option */
1071
+ selectedSort: string;
1072
+ /** Sort options */
1073
+ sortOptions: {
1074
+ value: string;
1075
+ label: string;
1076
+ }[];
1077
+ /** Search query */
1078
+ searchQuery: string;
1079
+ /** Whether user has created channel */
1080
+ hasCreatedChannel: boolean;
1081
+ /** Sidebar toggle handler */
1082
+ onSidebarToggle: () => void;
1083
+ /** Channel select handler */
1084
+ onChannelSelect: (channelId: string) => void;
1085
+ /** Chain filter change handler */
1086
+ onChainChange: (chain: string) => void;
1087
+ /** Sort change handler */
1088
+ onSortChange: (sort: string) => void;
1089
+ /** Search change handler */
1090
+ onSearchChange: (query: string) => void;
1091
+ /** Switch to discover tab */
1092
+ onSwitchToDiscover: () => void;
1093
+ /** Create channel handler */
1094
+ onCreateChannel?: () => void;
1095
+ /** Channel management handler */
1096
+ onChannelManagement?: () => void;
1097
+ /** Custom class name */
1098
+ className?: string;
1099
+ };
1100
+ /**
1101
+ * My Subscribe UI Component
1102
+ * Displays subscribed channels with expandable sidebar and channel detail
1103
+ */
1104
+ declare function MySubscribeUI({ subscribedChannels, selectedChannelId, isSidebarCollapsed, selectedChain, chainOptions, selectedSort, sortOptions, searchQuery, hasCreatedChannel, onSidebarToggle, onChannelSelect, onChainChange, onSortChange, onSearchChange, onSwitchToDiscover, onCreateChannel, onChannelManagement, className, }: MySubscribeUIProps): react_jsx_runtime.JSX.Element;
1105
+
1106
+ type UseMySubscribeScriptParams = {
1107
+ /** Initial subscribed channels data */
1108
+ subscribedChannels?: SubscribedChannelData[];
1109
+ /** Whether user has created a channel */
1110
+ hasCreatedChannel?: boolean;
1111
+ };
1112
+ /**
1113
+ * Business logic for My Subscribe page
1114
+ */
1115
+ declare function useMySubscribeScript({ subscribedChannels: initialChannels, hasCreatedChannel, }?: UseMySubscribeScriptParams): {
1116
+ subscribedChannels: SubscribedChannelData[];
1117
+ selectedChannelId: string | null;
1118
+ isSidebarCollapsed: boolean;
1119
+ selectedChain: string;
1120
+ chainOptions: {
1121
+ value: string;
1122
+ label: string;
1123
+ }[];
1124
+ selectedSort: string;
1125
+ sortOptions: {
1126
+ value: string;
1127
+ label: string;
1128
+ }[];
1129
+ searchQuery: string;
1130
+ hasCreatedChannel: boolean;
1131
+ handleSidebarToggle: () => void;
1132
+ handleChannelSelect: (channelId: string) => void;
1133
+ handleChainChange: (chain: string) => void;
1134
+ handleSortChange: (sort: string) => void;
1135
+ handleSearchChange: (query: string) => void;
1136
+ handleSwitchToDiscover: () => void;
1137
+ handleCreateChannel: () => void;
1138
+ handleChannelManagement: () => void;
1139
+ };
1140
+
1141
+ type MySubscribeWidgetProps = UseMySubscribeScriptParams & {
1142
+ /** Switch to discover handler */
1143
+ onSwitchToDiscover?: () => void;
1144
+ /** Create channel handler */
1145
+ onCreateChannel?: () => void;
1146
+ /** Channel management handler */
1147
+ onChannelManagement?: () => void;
1148
+ /** Custom class name */
1149
+ className?: string;
1150
+ };
1151
+ /**
1152
+ * My Subscribe Widget
1153
+ * Combines UI and business logic for subscribed channels page
1154
+ */
1155
+ declare function MySubscribeWidget({ subscribedChannels, hasCreatedChannel, onSwitchToDiscover: externalOnSwitchToDiscover, onCreateChannel: externalOnCreateChannel, onChannelManagement: externalOnChannelManagement, className, }: MySubscribeWidgetProps): react_jsx_runtime.JSX.Element;
1156
+
222
1157
  type ChannelHomePageProps = {
223
1158
  onCreateChannel?: () => void;
224
1159
  onSelectChannel?: (channel: Channel) => void;
@@ -234,6 +1169,24 @@ type ChannelDetailPageProps = {
234
1169
  };
235
1170
  declare function ChannelsDetailPage({ id, customHeaderActions, customFooterActions, }: ChannelDetailPageProps): react_jsx_runtime.JSX.Element;
236
1171
 
1172
+ type StepStatus = "completed" | "current" | "pending";
1173
+ type Step = {
1174
+ id: string;
1175
+ label: string;
1176
+ status: StepStatus;
1177
+ };
1178
+ type StepperUIProps = {
1179
+ /** Array of steps */
1180
+ steps: Step[];
1181
+ /** Custom class name */
1182
+ className?: string;
1183
+ };
1184
+ /**
1185
+ * Stepper UI Component
1186
+ * Vertical step indicator showing progress through a multi-step process
1187
+ */
1188
+ declare function StepperUI({ steps, className }: StepperUIProps): react_jsx_runtime.JSX.Element;
1189
+
237
1190
  interface ChannelsContextValue {
238
1191
  client: API.IChannelsClient;
239
1192
  }
@@ -309,12 +1262,22 @@ declare function useUpdateChannelSourcesMutation(options?: Omit<UseMutationOptio
309
1262
 
310
1263
  declare const useUpload: () => (file: File) => Promise<string>;
311
1264
 
1265
+ declare function xEligibilityQueryKey(): string[];
1266
+ declare function fetchXEligibility(client: IChannelsClient): Promise<XEligibilityInfo>;
1267
+ declare function useXEligibilityQuery(options?: Omit<UseQueryOptions<XEligibilityInfo, Error, XEligibilityInfo, string[]>, "queryKey" | "queryFn">): _tanstack_react_query.UseQueryResult<XEligibilityInfo, Error>;
1268
+
1269
+ declare function xAuthorizeUrlQueryKey(returnUrl?: string): string[];
1270
+ declare function fetchXAuthorizeUrl(client: IChannelsClient, returnUrl?: string): Promise<string>;
1271
+ declare function useXAuthorizeUrlQuery(params?: {
1272
+ returnUrl?: string;
1273
+ }, options?: Omit<UseQueryOptions<string, Error, string, string[]>, "queryKey" | "queryFn">): _tanstack_react_query.UseQueryResult<string, Error>;
1274
+
312
1275
  declare function parseWalletsText(value: string): Array<Partial<WalletValues>>;
313
1276
 
314
1277
  type ChannelEventRowProps = {
315
1278
  event: ChannelEvent;
316
1279
  walletAliases?: Record<string, string | undefined>;
317
- tokens?: Record<string, Token>;
1280
+ tokens?: Record<string, Token$1>;
318
1281
  };
319
1282
 
320
- export { BaseFormUI, type BaseFormUIProps, type BaseFormValues, ChannelAttributes, type ChannelAttributesProps, ChannelBaseInfo, type ChannelBaseInfoProps, type ChannelDetailPageProps, ChannelDetailUI, type ChannelDetailUIProps, ChannelDetailWidget, type ChannelDetailWidgetProps, ChannelEditButton, type ChannelEditButtonProps, type ChannelEventRowProps, type ChannelHomePageProps, ChannelStats, type ChannelStatsProps, ChannelSubscribeButton, type ChannelSubscribeButtonProps, ChannelsContext, type ChannelsContextValue, ChannelsDetailPage, ChannelsEmptyUI, type ChannelsEmptyUIProps, ChannelsHomePage, ChannelsProvider, type ChannelsProviderProps, ChannelsSkeletonUI, type ChannelsSkeletonUIProps, ChannelsUI, type ChannelsUIProps, CreateChannelWidget, type CreateChannelWidgetProps, MyChannelsWidget, type MyChannelsWidgetProps, SocialsFormUI, type SocialsFormUIProps, SubscribedChannelsWidget, type SubscribedChannelsWidgetProps, TrendingChannelsWidget, type TrendingChannelsWidgetProps, type UpdateChannelFormType, UpdateChannelFormUI, type UpdateChannelFormUIProps, UpdateChannelWidget, type UpdateChannelWidgetProps, type UseChannelEventsQueryParams, type UseChannelsListQueryParams, type UseCreateChannelMutationParams, type UseMyChannelsListQueryParams, type UseSubscribedChannelsListQueryParams, type UseUpdateChannelMutationParams, type UseUpdateChannelSourcesMutationParams, type WalletValues, WalletsFormUI, type WalletsFormUIProps, type WalletsFormValues, WalletsListUI, type WalletsListUIProps, baseFormSchema, channelEventsInfiniteQueryKey, channelEventsQueryKey, channelQueryKey, channelSourcesQueryKey, channelsListQueryKey, createChannel, fetchChannel, fetchChannelEvents, fetchChannelSources, fetchChannelsList, fetchMyChannelsList, fetchSubscribedChannelsList, myChannelsListQueryKey, parseWalletsText, subscribeChannel, subscribedChannelsListQueryKey, unsubscribeChannel, updateChannel, updateChannelSources, useChannelDetail, useChannelEventsInfiniteQuery, useChannelEventsQuery, useChannelQuery, useChannelSourcesQuery, useChannelsClient, useChannelsContext, useChannelsListQuery, useCreateChannelMutation, useMyChannels, useMyChannelsListQuery, useSubscribeChannelMutation, useSubscribedChannels, useSubscribedChannelsListQuery, useTrendingChannels, useUnsubscribeChannelMutation, useUpdateBaseForm, useUpdateChannelMutation, useUpdateChannelSourcesMutation, useUpdateWalletsForm, useUpload, _default as version, walletSchema, walletsFormSchema };
1283
+ export { ActivityFeedUI, type ActivityFeedUIProps, ActivityFeedWidget, type ActivityFeedWidgetProps, BaseFormUI, type BaseFormUIProps, type BaseFormValues, type BotConnectionStatus, ChannelAttributes, type ChannelAttributesProps, ChannelBaseInfo, type ChannelBaseInfoProps, ChannelBasicInfoUI, type ChannelBasicInfoUIProps, ChannelBasicInfoWidget, type ChannelBasicInfoWidgetProps, type ChannelCardData, type ChannelDetailData, ChannelDetailNewUI, type ChannelDetailNewUIProps, ChannelDetailNewWidget, type ChannelDetailNewWidgetProps, type ChannelDetailPageProps, type ChannelDetailStats, ChannelDetailUI, type ChannelDetailUIProps, ChannelDetailWidget, type ChannelDetailWidgetProps, ChannelEditButton, type ChannelEditButtonProps, type ChannelEventRowProps, type ChannelHomePageProps, ChannelStats, type ChannelStatsProps, ChannelSubscribeButton, type ChannelSubscribeButtonProps, ChannelsContext, type ChannelsContextValue, ChannelsDetailPage, ChannelsEmptyUI, type ChannelsEmptyUIProps, ChannelsHomePage, ChannelsProvider, type ChannelsProviderProps, ChannelsSkeletonUI, type ChannelsSkeletonUIProps, ChannelsUI, type ChannelsUIProps, CheckEligibilityUI, type CheckEligibilityUIProps, CheckEligibilityWidget, type CheckEligibilityWidgetProps, CreateChannelWidget, type CreateChannelWidgetProps, type EligibilityCheckItem, type EligibilityCheckStatus, FindChannelUI, type FindChannelUIProps, FindChannelWidget, type FindChannelWidgetProps, type KeyMetric, type MonitoredWallet, MyChannelsWidget, type MyChannelsWidgetProps, MySubscribeUI, type MySubscribeUIProps, MySubscribeWidget, type MySubscribeWidgetProps, type PresetAvatar, SocialBotsUI, type SocialBotsUIProps, SocialBotsWidget, type SocialBotsWidgetProps, SocialsFormUI, type SocialsFormUIProps, type SortDirection, type SortField, type Step, type StepStatus, StepperUI, type StepperUIProps, type SubscribedChannelData, SubscribedChannelsWidget, type SubscribedChannelsWidgetProps, TabContainerUI, type TabContainerUIProps, TabContainerWidget, type TabContainerWidgetProps, type TabType, type TimeFilter, type Token, TokensListUI, type TokensListUIProps, TokensListWidget, type TokensListWidgetProps, type TradeEvent, type Trader, TradersTableUI, type TradersTableUIProps, TradersTableWidget, type TradersTableWidgetProps, TrendingChannelsWidget, type TrendingChannelsWidgetProps, type UpdateChannelFormType, UpdateChannelFormUI, type UpdateChannelFormUIProps, UpdateChannelWidget, type UpdateChannelWidgetProps, type UseChannelBasicInfoScriptParams, type UseChannelBasicInfoScriptResult, type UseChannelEventsQueryParams, type UseChannelsListQueryParams, type UseCheckEligibilityScriptParams, type UseCheckEligibilityScriptResult, type UseCreateChannelMutationParams, type UseFindChannelScriptParams, type UseMyChannelsListQueryParams, type UseMySubscribeScriptParams, type UseSocialBotsScriptParams, type UseSocialBotsScriptResult, type UseSubscribedChannelsListQueryParams, type UseUpdateChannelMutationParams, type UseUpdateChannelSourcesMutationParams, type UseWalletImportScriptParams, type UseWalletImportScriptResult, WalletImportUI, type WalletImportUIProps, WalletImportWidget, type WalletImportWidgetProps, type WalletValues, WalletsFormUI, type WalletsFormUIProps, type WalletsFormValues, WalletsListUI, type WalletsListUIProps, type XAccountInfo, baseFormSchema, channelEventsInfiniteQueryKey, channelEventsQueryKey, channelQueryKey, channelSourcesQueryKey, channelsListQueryKey, createChannel, fetchChannel, fetchChannelEvents, fetchChannelSources, fetchChannelsList, fetchMyChannelsList, fetchSubscribedChannelsList, fetchXAuthorizeUrl, fetchXEligibility, myChannelsListQueryKey, parseWalletsText, subscribeChannel, subscribedChannelsListQueryKey, unsubscribeChannel, updateChannel, updateChannelSources, useChannelBasicInfoScript, useChannelDetail, useChannelEventsInfiniteQuery, useChannelEventsQuery, useChannelQuery, useChannelSourcesQuery, useChannelsClient, useChannelsContext, useChannelsListQuery, useCheckEligibilityScript, useCreateChannelMutation, useFindChannelScript, useMyChannels, useMyChannelsListQuery, useMySubscribeScript, useSocialBotsScript, useSubscribeChannelMutation, useSubscribedChannels, useSubscribedChannelsListQuery, useTrendingChannels, useUnsubscribeChannelMutation, useUpdateBaseForm, useUpdateChannelMutation, useUpdateChannelSourcesMutation, useUpdateWalletsForm, useUpload, useWalletImportScript, useXAuthorizeUrlQuery, useXEligibilityQuery, _default as version, walletSchema, walletsFormSchema, xAuthorizeUrlQueryKey, xEligibilityQueryKey };