@blockrun/llm 2.5.0 → 2.8.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.
package/dist/index.d.cts CHANGED
@@ -494,6 +494,13 @@ interface VideoGenerateOptions {
494
494
  model?: "xai/grok-imagine-video" | string;
495
495
  /** Optional seed image URL for image-to-video */
496
496
  imageUrl?: string;
497
+ /**
498
+ * Virtual Portrait asset ID (`ta_xxxxxx`) — keeps the same AI character
499
+ * across multiple Seedance videos. Enroll via `POST /v1/portrait/enroll`
500
+ * ($0.01 USDC promo, no KYC). **Seedance 2.0 fast/pro only.** Mutually exclusive
501
+ * with `imageUrl`. Real-person likeness is not supported on BlockRun.
502
+ */
503
+ realFaceAssetId?: string;
497
504
  /** Duration to bill for (defaults to model's default duration) */
498
505
  durationSeconds?: number;
499
506
  /** Output aspect ratio. Token360 / Seedance only — silently ignored by xAI Grok. */
@@ -501,11 +508,12 @@ interface VideoGenerateOptions {
501
508
  /** Output resolution. Token360 / Seedance only. */
502
509
  resolution?: "360p" | "480p" | "540p" | "720p" | "1080p" | "1K" | "2K" | "4K";
503
510
  /**
504
- * Whether the model should produce an audio track. Token360 / Seedance only.
505
- * When omitted, the gateway does not send the flag — Token360 then applies
506
- * its own upstream default (typically off, occasionally on depending on
507
- * model variant / prompt). Audio generation is usually a paid surcharge,
508
- * so callers should expose this as a visible toggle to their users.
511
+ * Whether the model should produce a synced audio track. Token360 / Seedance
512
+ * only — silently ignored by xAI Grok. When omitted, the gateway defaults to
513
+ * `true` for text-to-video and `false` for image- or face-conditioned
514
+ * generation (the t2v / i2v split that matches Token360's quality profile).
515
+ * Pass an explicit boolean to override. Audio generation may be a paid
516
+ * surcharge upstream, so callers should expose this as a visible toggle.
509
517
  */
510
518
  generateAudio?: boolean;
511
519
  /** Reproducibility seed when supported by the model. */
@@ -790,6 +798,132 @@ interface SurfClientOptions {
790
798
  apiUrl?: string;
791
799
  timeout?: number;
792
800
  }
801
+ interface PhoneClientOptions {
802
+ /** EVM wallet private key (hex string starting with 0x) */
803
+ privateKey?: `0x${string}` | string;
804
+ /** API endpoint URL (default: https://blockrun.ai/api) */
805
+ apiUrl?: string;
806
+ /** Request timeout in milliseconds (default: 60000) */
807
+ timeout?: number;
808
+ }
809
+ /**
810
+ * Twilio Lookup passthrough — shape comes from upstream and varies by feature
811
+ * (basic vs `line_type_intelligence`, `sim_swap`, `call_forwarding`).
812
+ * Typed as a permissive record so future Twilio fields don't require an SDK release.
813
+ */
814
+ interface PhoneLookupResponse {
815
+ phone_number?: string;
816
+ country_code?: string;
817
+ national_format?: string;
818
+ caller_name?: Record<string, unknown> | null;
819
+ carrier?: Record<string, unknown> | null;
820
+ line_type_intelligence?: Record<string, unknown> | null;
821
+ sim_swap?: Record<string, unknown> | null;
822
+ call_forwarding?: Record<string, unknown> | null;
823
+ /** Pass-through for anything Twilio adds. */
824
+ [key: string]: unknown;
825
+ }
826
+ interface PhoneBuyOptions {
827
+ /** ISO country code, "US" or "CA" (default "US"). */
828
+ country?: "US" | "CA";
829
+ /**
830
+ * Optional 3-digit area-code hint. Availability is not guaranteed — the
831
+ * backend falls back to any number in the country if the area code
832
+ * can't be matched.
833
+ */
834
+ areaCode?: string;
835
+ }
836
+ interface PhoneBuyResponse {
837
+ /** The E.164 number now bound to your wallet. */
838
+ phone_number: string;
839
+ /** ISO-8601 expiry (30 days out from purchase). */
840
+ expires_at: string;
841
+ /** "base" | "solana" — settlement chain. */
842
+ chain: string;
843
+ /** Human-readable note. */
844
+ message?: string;
845
+ /** On-chain payment receipt (tx hash). */
846
+ txHash?: string;
847
+ }
848
+ interface PhoneRenewResponse {
849
+ phone_number: string;
850
+ /** Extended expiry (30 days from previous expiry). */
851
+ expires_at: string;
852
+ txHash?: string;
853
+ }
854
+ interface PhoneNumberRecord {
855
+ phone_number: string;
856
+ chain: string;
857
+ expires_at: string;
858
+ active: boolean;
859
+ }
860
+ interface PhoneListResponse {
861
+ numbers: PhoneNumberRecord[];
862
+ count: number;
863
+ txHash?: string;
864
+ }
865
+ interface PhoneReleaseResponse {
866
+ released: true;
867
+ phone_number: string;
868
+ txHash?: string;
869
+ }
870
+ interface PortraitClientOptions {
871
+ /** EVM wallet private key (hex string starting with 0x) */
872
+ privateKey?: `0x${string}` | string;
873
+ /** API endpoint URL (default: https://blockrun.ai/api) */
874
+ apiUrl?: string;
875
+ /** Request timeout in milliseconds (default: 60000) */
876
+ timeout?: number;
877
+ }
878
+ interface PortraitEnrollOptions {
879
+ /** Display name for the portrait (1–64 chars). */
880
+ name: string;
881
+ /**
882
+ * Public HTTPS URL to a JPG/PNG/WEBP face image (≤10 MB). The gateway fetches
883
+ * it server-side and forwards it to Token360 as multipart — only the URL is sent.
884
+ */
885
+ imageUrl: string;
886
+ }
887
+ /**
888
+ * Response from `POST /v1/portrait/enroll`. The `asset_id` (`ta_xxxxxx`) is what
889
+ * you pass as `realFaceAssetId` on a Seedance 2.0 video generation to keep the
890
+ * same AI character across clips.
891
+ */
892
+ interface PortraitEnrollResponse {
893
+ object: "virtual_portrait";
894
+ /** Token360 asset id (`ta_xxxxxx`) — pass as `realFaceAssetId` in VideoGenerateOptions. */
895
+ asset_id: string;
896
+ /** Token360 asset-group id (internal/debugging). */
897
+ group_id: string;
898
+ name: string;
899
+ /**
900
+ * Persisted thumbnail URL. The gateway mirrors your source image to its own
901
+ * storage when possible (so the listing thumbnail survives a dead source
902
+ * host); falls back to the original URL if mirroring fails. See `mirrored`.
903
+ */
904
+ image_url: string;
905
+ /** The original URL you supplied (before any mirroring). */
906
+ source_image_url?: string;
907
+ /** Whether `image_url` is the gateway-mirrored copy (true) or your original (false). */
908
+ mirrored?: boolean;
909
+ /** ISO-8601 creation timestamp. */
910
+ created_at: string;
911
+ usage: {
912
+ compatible_models: string[];
913
+ how_to_use: string;
914
+ };
915
+ price: {
916
+ amount: string;
917
+ currency: string;
918
+ };
919
+ settlement: {
920
+ success: boolean;
921
+ tx_hash: string | null;
922
+ network: string;
923
+ };
924
+ /** On-chain payment receipt (tx hash), surfaced from the response header. */
925
+ txHash?: string;
926
+ }
793
927
  interface BlockrunClientOptions {
794
928
  privateKey?: `0x${string}` | string;
795
929
  apiUrl?: string;
@@ -1597,6 +1731,175 @@ declare class VoiceClient {
1597
1731
  getSpending(): Spending;
1598
1732
  }
1599
1733
 
1734
+ /**
1735
+ * BlockRun Phone Client — Twilio-backed phone lookup + number provisioning via x402.
1736
+ *
1737
+ * Endpoints (all under /v1/phone/...):
1738
+ * POST /lookup $0.01 Carrier + line-type lookup
1739
+ * POST /lookup/fraud $0.05 Carrier + SIM-swap / call-forwarding signals
1740
+ * POST /numbers/buy $5.00 Provision a US/CA number (30-day lease, bound to wallet)
1741
+ * POST /numbers/renew $5.00 Extend an existing number by 30 days
1742
+ * POST /numbers/list $0.001 List the wallet's active numbers
1743
+ * POST /numbers/release free Release a provisioned number (still flows through x402
1744
+ * so the backend can verify wallet identity)
1745
+ *
1746
+ * After buying a number you can use it as the `from` caller ID in VoiceClient.call().
1747
+ *
1748
+ * SECURITY NOTE — your private key never leaves your machine. Only EIP-712
1749
+ * signatures are sent in the PAYMENT-SIGNATURE header.
1750
+ *
1751
+ * @example
1752
+ * import { PhoneClient } from '@blockrun/llm';
1753
+ *
1754
+ * const client = new PhoneClient({ privateKey: '0x...' });
1755
+ *
1756
+ * // Lookup a number
1757
+ * const info = await client.lookup('+14155552671');
1758
+ *
1759
+ * // Buy a number (US, optional area code)
1760
+ * const bought = await client.buyNumber({ country: 'US', areaCode: '415' });
1761
+ * console.log(bought.phone_number, bought.expires_at);
1762
+ *
1763
+ * // List your active numbers
1764
+ * console.log(await client.listNumbers());
1765
+ *
1766
+ * // Renew / release
1767
+ * await client.renewNumber(bought.phone_number);
1768
+ * await client.releaseNumber(bought.phone_number);
1769
+ */
1770
+
1771
+ /** Per-endpoint price in USD — mirrors the backend's `PHONE_PRICES`. */
1772
+ declare const PHONE_PRICES: Readonly<Record<string, number>>;
1773
+ /**
1774
+ * BlockRun Phone Client.
1775
+ *
1776
+ * Wraps the `/v1/phone/*` x402 endpoints — phone-number lookup (carrier + fraud)
1777
+ * and provisioning of the caller-ID numbers required by VoiceClient.call().
1778
+ */
1779
+ declare class PhoneClient {
1780
+ private account;
1781
+ private privateKey;
1782
+ private apiUrl;
1783
+ private timeout;
1784
+ private sessionTotalUsd;
1785
+ private sessionCalls;
1786
+ constructor(options?: PhoneClientOptions);
1787
+ /** EVM wallet address used for payments. */
1788
+ getWalletAddress(): string;
1789
+ /** Session-cumulative USD spend + call count across this client instance. */
1790
+ getSpending(): Spending;
1791
+ /**
1792
+ * Carrier + line-type lookup. ~$0.01.
1793
+ *
1794
+ * @param phoneNumber E.164 number (e.g. "+14155552671").
1795
+ */
1796
+ lookup(phoneNumber: string): Promise<PhoneLookupResponse>;
1797
+ /**
1798
+ * Lookup + fraud signals (SIM swap, call forwarding). ~$0.05.
1799
+ *
1800
+ * @param phoneNumber E.164 number.
1801
+ */
1802
+ lookupFraud(phoneNumber: string): Promise<PhoneLookupResponse>;
1803
+ /**
1804
+ * Provision a dedicated phone number for 30 days. $5.00.
1805
+ *
1806
+ * Payment is settled only after Twilio confirms the purchase, so failed
1807
+ * buys never charge your wallet.
1808
+ *
1809
+ * @param options.country ISO country code, "US" or "CA" (default "US").
1810
+ * @param options.areaCode Optional 3-digit area-code hint. Availability is
1811
+ * not guaranteed — the backend falls back to any number in the country if
1812
+ * the area code can't be matched.
1813
+ */
1814
+ buyNumber(options?: PhoneBuyOptions): Promise<PhoneBuyResponse>;
1815
+ /**
1816
+ * Extend an existing provisioned number by 30 days. $5.00.
1817
+ *
1818
+ * @throws {APIError} 403 when the wallet doesn't own the number or it has expired.
1819
+ */
1820
+ renewNumber(phoneNumber: string): Promise<PhoneRenewResponse>;
1821
+ /** List the wallet's active phone numbers. ~$0.001. */
1822
+ listNumbers(): Promise<PhoneListResponse>;
1823
+ /**
1824
+ * Release a provisioned number back to the Twilio pool. Free, but still
1825
+ * flows through x402 so the backend can verify ownership.
1826
+ */
1827
+ releaseNumber(phoneNumber: string): Promise<PhoneReleaseResponse>;
1828
+ private request;
1829
+ private handlePaymentAndRetry;
1830
+ private unwrap;
1831
+ private fetchWithTimeout;
1832
+ }
1833
+
1834
+ /**
1835
+ * BlockRun Portrait Client — enroll a Virtual Portrait via x402.
1836
+ *
1837
+ * Wraps `POST /v1/portrait/enroll` ($0.01 USDC promo, no KYC). You upload a face image
1838
+ * by URL and get back a Token360 asset id (`ta_xxxxxx`). Pass that id as
1839
+ * `realFaceAssetId` on a Seedance 2.0 video generation (VideoClient.generate)
1840
+ * to keep the same AI character across clips.
1841
+ *
1842
+ * SECURITY NOTE — your private key never leaves your machine. Only EIP-712
1843
+ * signatures are sent in the PAYMENT-SIGNATURE header.
1844
+ *
1845
+ * @example
1846
+ * import { PortraitClient, VideoClient } from '@blockrun/llm';
1847
+ *
1848
+ * const portraits = new PortraitClient({ privateKey: '0x...' });
1849
+ * const { asset_id } = await portraits.enroll({
1850
+ * name: 'Spokesperson',
1851
+ * imageUrl: 'https://example.com/face.jpg',
1852
+ * });
1853
+ *
1854
+ * const video = new VideoClient({ privateKey: '0x...' });
1855
+ * const clip = await video.generate('she waves and smiles', {
1856
+ * model: 'bytedance/seedance-2.0-fast',
1857
+ * realFaceAssetId: asset_id,
1858
+ * });
1859
+ */
1860
+
1861
+ /**
1862
+ * Flat enrollment price in USD — mirrors the backend's `ENROLLMENT_PRICE_USD`.
1863
+ * Currently $0.01 (promotional, parity with RealFace). The authoritative price
1864
+ * is whatever the gateway quotes in the 402; this constant is informational.
1865
+ */
1866
+ declare const PORTRAIT_ENROLLMENT_PRICE_USD = 0.01;
1867
+ /**
1868
+ * BlockRun Portrait Client.
1869
+ *
1870
+ * Enrolls a Virtual Portrait from a face image URL and returns the `ta_xxxxxx`
1871
+ * asset id consumed by Seedance 2.0 video generation. Real-person likeness is
1872
+ * not supported on BlockRun — enrolled portraits are AI characters.
1873
+ */
1874
+ declare class PortraitClient {
1875
+ private account;
1876
+ private privateKey;
1877
+ private apiUrl;
1878
+ private timeout;
1879
+ private sessionTotalUsd;
1880
+ private sessionCalls;
1881
+ constructor(options?: PortraitClientOptions);
1882
+ /** EVM wallet address used for payments. */
1883
+ getWalletAddress(): string;
1884
+ /** Session-cumulative USD spend + call count across this client instance. */
1885
+ getSpending(): Spending;
1886
+ /**
1887
+ * Enroll a Virtual Portrait from a face image URL. $0.01 (promo).
1888
+ *
1889
+ * Payment is settled only after Token360 confirms the enrollment, so failed
1890
+ * enrollments never charge your wallet.
1891
+ *
1892
+ * @param options.name Display name (1–64 chars).
1893
+ * @param options.imageUrl Public HTTPS URL to a JPG/PNG/WEBP image (≤10 MB).
1894
+ * @returns The enrollment record, including `asset_id` (`ta_xxxxxx`).
1895
+ */
1896
+ enroll(options: PortraitEnrollOptions): Promise<PortraitEnrollResponse>;
1897
+ private request;
1898
+ private handlePaymentAndRetry;
1899
+ private unwrap;
1900
+ private fetchWithTimeout;
1901
+ }
1902
+
1600
1903
  /**
1601
1904
  * BlockRun Search Client - Standalone Grok Live Search via x402 micropayments.
1602
1905
  *
@@ -1963,6 +2266,11 @@ interface CreateSolanaPaymentOptions {
1963
2266
  extra?: Record<string, unknown>;
1964
2267
  extensions?: Record<string, unknown>;
1965
2268
  rpcUrl?: string;
2269
+ /**
2270
+ * Optional HTTP headers forwarded to the Solana RPC endpoint
2271
+ * (e.g. `{ "x-api-key": "..." }` for Tatum / header-auth gateways).
2272
+ */
2273
+ rpcHeaders?: Record<string, string>;
1966
2274
  }
1967
2275
  /**
1968
2276
  * Create a signed Solana x402 v2 payment payload.
@@ -2152,8 +2460,21 @@ interface SolanaLLMClientOptions {
2152
2460
  privateKey?: string;
2153
2461
  /** API endpoint URL (default: https://sol.blockrun.ai/api) */
2154
2462
  apiUrl?: string;
2155
- /** Solana RPC URL (default: https://api.mainnet-beta.solana.com) */
2463
+ /**
2464
+ * Solana JSON-RPC URL. Defaults to BlockRun's own Tatum-backed proxy
2465
+ * (`https://sol.blockrun.ai/api/v1/solana/rpc`), free for SDK users.
2466
+ * Override to point at your own Helius / Tatum / QuickNode account, or
2467
+ * fall back to the env vars `SOLANA_RPC_URL` /
2468
+ * `SOLANA_RPC_API_KEY` / `SOLANA_RPC_HEADERS`.
2469
+ */
2156
2470
  rpcUrl?: string;
2471
+ /**
2472
+ * Optional headers forwarded to the Solana RPC endpoint. Use this for
2473
+ * header-auth gateways (Tatum's `x-api-key`, some Triton tiers). Falls
2474
+ * back to `SOLANA_RPC_HEADERS` (JSON dict) or `SOLANA_RPC_API_KEY`
2475
+ * (shortcut for `{ "x-api-key": "..." }`) env vars when omitted.
2476
+ */
2477
+ rpcHeaders?: Record<string, string>;
2157
2478
  /** Request timeout in milliseconds (default: 60000) */
2158
2479
  timeout?: number;
2159
2480
  }
@@ -2162,6 +2483,7 @@ declare class SolanaLLMClient {
2162
2483
  private privateKey;
2163
2484
  private apiUrl;
2164
2485
  private rpcUrl;
2486
+ private rpcHeaders?;
2165
2487
  private timeout;
2166
2488
  private sessionTotalUsd;
2167
2489
  private sessionCalls;
@@ -2566,4 +2888,4 @@ declare function validateTemperature(temperature?: number): void;
2566
2888
  */
2567
2889
  declare function validateTopP(topP?: number): void;
2568
2890
 
2569
- export { APIError, AnthropicClient, type AudioModel, type AudioTrack, BASE_CHAIN_ID, type BarResolution, type BlockRunAnthropicOptions, BlockrunClient, type BlockrunClientOptions, BlockrunError, type CallInitiatedResponse, type CallModel, type CallOptions, type CallStatusResponse, type ChatChoice, type ChatCompletionOptions, type ChatMessage, type ChatOptions, type ChatResponse, type ChatResponseWithCost, type ChatUsage, type CostEntry, type CostEstimate, type CreatePaymentOptions, type FunctionCall, type FunctionDefinition, type HistoryOptions, ImageClient, type ImageClientOptions, type ImageData, type ImageEditOptions, type ImageGenerateOptions, type ImageModel, type ImageResponse, KNOWN_PROVIDERS, LLMClient, type LLMClientOptions, type ListOptions, type MarketSession, type Model, MusicClient, type MusicClientOptions, type MusicGenerateOptions, type MusicResponse, type NewsSearchSource, OpenAI, type OpenAIChatCompletionChoice, type OpenAIChatCompletionChunk, type OpenAIChatCompletionParams, type OpenAIChatCompletionResponse, type OpenAIClientOptions, PaymentError, type PaymentLinks, type PollOptions, type PriceBar, type PriceCategory, PriceClient, type PriceClientOptions, type PriceHistoryResponse, type PriceOptions, type PricePoint, type RoutingDecision, type RoutingProfile, type RoutingTier, type RssSearchSource, SOLANA_NETWORK, SOLANA_WALLET_FILE as SOLANA_WALLET_FILE_PATH, SearchClient, type SearchClientOptions, type SearchOptions, type SearchParameters, type SearchResult, type SearchSource, type SearchUsage, type SmartChatOptions, type SmartChatResponse, SolanaLLMClient, type SolanaLLMClientOptions, type SolanaWalletInfo, type Spending, type SpendingReport, type StockMarket, SurfClient, type SurfClientOptions, type SymbolListResponse, type Tool, type ToolCall, type ToolChoice, USDC_BASE, USDC_BASE_CONTRACT, USDC_SOLANA, VideoClient, type VideoClientOptions, type VideoClip, type VideoGenerateOptions, type VideoModel, type VideoResponse, VoiceClient, type VoiceClientOptions, type VoicePreset, WALLET_DIR_PATH, WALLET_FILE_PATH, type WalletInfo, type WebSearchSource, type XArticlesRisingResponse, type XAuthorAnalyticsResponse, XClient, type XClientOptions, type XCompareAuthorsResponse, type XFollower, type XFollowersResponse, type XFollowingsResponse, type XMentionsOptions, type XMentionsResponse, type XSearchOptions, type XSearchResponse, type XSearchSource, type XTrendingResponse, type XTweet, type XTweetLookupResponse, type XTweetRepliesOptions, type XTweetRepliesResponse, type XTweetThreadResponse, type XTweetsResponse, type XUser, type XUserInfoResponse, type XUserLookupResponse, type XUserTweetsOptions, type XVerifiedFollowersResponse, clearCache, createPaymentPayload, createSolanaPaymentPayload, createSolanaWallet, createWallet, LLMClient as default, extractPaymentDetails, formatFundingMessageCompact, formatNeedsFundingMessage, formatWalletCreatedMessage, getCached, getCachedByRequest, getCostLogSummary, getCostSummary, getEip681Uri, getOrCreateSolanaWallet, getOrCreateWallet, getPaymentLinks, getWalletAddress, loadSolanaWallet, loadWallet, logCost, parsePaymentRequired, saveSolanaWallet, saveToCache, saveWallet, scanSolanaWallets, scanWallets, setCache, setupAgentSolanaWallet, setupAgentWallet, solanaClient, solanaKeyToBytes, solanaPublicKey, status, validateMaxTokens, validateModel, validateTemperature, validateTopP };
2891
+ export { APIError, AnthropicClient, type AudioModel, type AudioTrack, BASE_CHAIN_ID, type BarResolution, type BlockRunAnthropicOptions, BlockrunClient, type BlockrunClientOptions, BlockrunError, type CallInitiatedResponse, type CallModel, type CallOptions, type CallStatusResponse, type ChatChoice, type ChatCompletionOptions, type ChatMessage, type ChatOptions, type ChatResponse, type ChatResponseWithCost, type ChatUsage, type CostEntry, type CostEstimate, type CreatePaymentOptions, type FunctionCall, type FunctionDefinition, type HistoryOptions, ImageClient, type ImageClientOptions, type ImageData, type ImageEditOptions, type ImageGenerateOptions, type ImageModel, type ImageResponse, KNOWN_PROVIDERS, LLMClient, type LLMClientOptions, type ListOptions, type MarketSession, type Model, MusicClient, type MusicClientOptions, type MusicGenerateOptions, type MusicResponse, type NewsSearchSource, OpenAI, type OpenAIChatCompletionChoice, type OpenAIChatCompletionChunk, type OpenAIChatCompletionParams, type OpenAIChatCompletionResponse, type OpenAIClientOptions, PHONE_PRICES, PORTRAIT_ENROLLMENT_PRICE_USD, PaymentError, type PaymentLinks, type PhoneBuyOptions, type PhoneBuyResponse, PhoneClient, type PhoneClientOptions, type PhoneListResponse, type PhoneLookupResponse, type PhoneNumberRecord, type PhoneReleaseResponse, type PhoneRenewResponse, type PollOptions, PortraitClient, type PortraitClientOptions, type PortraitEnrollOptions, type PortraitEnrollResponse, type PriceBar, type PriceCategory, PriceClient, type PriceClientOptions, type PriceHistoryResponse, type PriceOptions, type PricePoint, type RoutingDecision, type RoutingProfile, type RoutingTier, type RssSearchSource, SOLANA_NETWORK, SOLANA_WALLET_FILE as SOLANA_WALLET_FILE_PATH, SearchClient, type SearchClientOptions, type SearchOptions, type SearchParameters, type SearchResult, type SearchSource, type SearchUsage, type SmartChatOptions, type SmartChatResponse, SolanaLLMClient, type SolanaLLMClientOptions, type SolanaWalletInfo, type Spending, type SpendingReport, type StockMarket, SurfClient, type SurfClientOptions, type SymbolListResponse, type Tool, type ToolCall, type ToolChoice, USDC_BASE, USDC_BASE_CONTRACT, USDC_SOLANA, VideoClient, type VideoClientOptions, type VideoClip, type VideoGenerateOptions, type VideoModel, type VideoResponse, VoiceClient, type VoiceClientOptions, type VoicePreset, WALLET_DIR_PATH, WALLET_FILE_PATH, type WalletInfo, type WebSearchSource, type XArticlesRisingResponse, type XAuthorAnalyticsResponse, XClient, type XClientOptions, type XCompareAuthorsResponse, type XFollower, type XFollowersResponse, type XFollowingsResponse, type XMentionsOptions, type XMentionsResponse, type XSearchOptions, type XSearchResponse, type XSearchSource, type XTrendingResponse, type XTweet, type XTweetLookupResponse, type XTweetRepliesOptions, type XTweetRepliesResponse, type XTweetThreadResponse, type XTweetsResponse, type XUser, type XUserInfoResponse, type XUserLookupResponse, type XUserTweetsOptions, type XVerifiedFollowersResponse, clearCache, createPaymentPayload, createSolanaPaymentPayload, createSolanaWallet, createWallet, LLMClient as default, extractPaymentDetails, formatFundingMessageCompact, formatNeedsFundingMessage, formatWalletCreatedMessage, getCached, getCachedByRequest, getCostLogSummary, getCostSummary, getEip681Uri, getOrCreateSolanaWallet, getOrCreateWallet, getPaymentLinks, getWalletAddress, loadSolanaWallet, loadWallet, logCost, parsePaymentRequired, saveSolanaWallet, saveToCache, saveWallet, scanSolanaWallets, scanWallets, setCache, setupAgentSolanaWallet, setupAgentWallet, solanaClient, solanaKeyToBytes, solanaPublicKey, status, validateMaxTokens, validateModel, validateTemperature, validateTopP };