@reverbia/sdk 1.0.0-next.20251219092050 → 1.0.0-next.20251219154503

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.
@@ -1744,7 +1744,7 @@ declare function executeTool(tool: ClientTool, params: Record<string, unknown>):
1744
1744
  * Dropbox uses OAuth 2.0 with PKCE for browser apps.
1745
1745
  */
1746
1746
  /** Default folder path for Dropbox backups */
1747
- declare const DEFAULT_BACKUP_FOLDER = "/ai-chat-app/conversations";
1747
+ declare const DEFAULT_BACKUP_FOLDER$1 = "/ai-chat-app/conversations";
1748
1748
 
1749
1749
  /**
1750
1750
  * Dropbox Backup Implementation
@@ -2191,12 +2191,339 @@ interface UseGoogleDriveBackupResult {
2191
2191
  */
2192
2192
  declare function useGoogleDriveBackup(options: UseGoogleDriveBackupOptions): UseGoogleDriveBackupResult;
2193
2193
 
2194
+ /**
2195
+ * Props for ICloudAuthProvider
2196
+ */
2197
+ interface ICloudAuthProviderProps {
2198
+ /** CloudKit API token (from Apple Developer Console) */
2199
+ apiToken: string;
2200
+ /** CloudKit container identifier (default: "iCloud.Memoryless") */
2201
+ containerIdentifier?: string;
2202
+ /** CloudKit environment (default: "production") */
2203
+ environment?: "development" | "production";
2204
+ /** Children to render */
2205
+ children: ReactNode;
2206
+ }
2207
+ /**
2208
+ * Context value for iCloud authentication
2209
+ */
2210
+ interface ICloudAuthContextValue {
2211
+ /** Whether user is authenticated with iCloud */
2212
+ isAuthenticated: boolean;
2213
+ /** Whether iCloud is configured and available */
2214
+ isConfigured: boolean;
2215
+ /** Whether CloudKit JS is loaded */
2216
+ isAvailable: boolean;
2217
+ /** User record name (unique identifier) */
2218
+ userRecordName: string | null;
2219
+ /** Request access - triggers iCloud sign-in if needed */
2220
+ requestAccess: () => Promise<void>;
2221
+ /** Sign out from iCloud */
2222
+ logout: () => void;
2223
+ }
2224
+ /**
2225
+ * Provider component for iCloud authentication.
2226
+ *
2227
+ * Wrap your app with this provider to enable iCloud authentication.
2228
+ * CloudKit JS is loaded automatically when needed.
2229
+ *
2230
+ * @example
2231
+ * ```tsx
2232
+ * import { ICloudAuthProvider } from "@reverbia/sdk/react";
2233
+ *
2234
+ * function App() {
2235
+ * return (
2236
+ * <ICloudAuthProvider
2237
+ * apiToken={process.env.NEXT_PUBLIC_CLOUDKIT_API_TOKEN!}
2238
+ * containerIdentifier="iCloud.Memoryless"
2239
+ * environment="production"
2240
+ * >
2241
+ * <MyApp />
2242
+ * </ICloudAuthProvider>
2243
+ * );
2244
+ * }
2245
+ * ```
2246
+ *
2247
+ * @category Components
2248
+ */
2249
+ declare function ICloudAuthProvider({ apiToken, containerIdentifier, environment, children, }: ICloudAuthProviderProps): JSX.Element;
2250
+ /**
2251
+ * Hook to access iCloud authentication state and methods.
2252
+ *
2253
+ * Must be used within an ICloudAuthProvider.
2254
+ *
2255
+ * @example
2256
+ * ```tsx
2257
+ * import { useICloudAuth } from "@reverbia/sdk/react";
2258
+ *
2259
+ * function ICloudStatus() {
2260
+ * const { isAuthenticated, isAvailable, requestAccess, logout } = useICloudAuth();
2261
+ *
2262
+ * if (!isAvailable) {
2263
+ * return <p>iCloud is not available. Please load CloudKit JS.</p>;
2264
+ * }
2265
+ *
2266
+ * return (
2267
+ * <div>
2268
+ * {isAuthenticated ? (
2269
+ * <>
2270
+ * <span>Connected to iCloud</span>
2271
+ * <button onClick={logout}>Disconnect</button>
2272
+ * </>
2273
+ * ) : (
2274
+ * <button onClick={requestAccess}>Connect to iCloud</button>
2275
+ * )}
2276
+ * </div>
2277
+ * );
2278
+ * }
2279
+ * ```
2280
+ *
2281
+ * @category Hooks
2282
+ */
2283
+ declare function useICloudAuth(): ICloudAuthContextValue;
2284
+ /**
2285
+ * Check if iCloud is configured (has API token)
2286
+ */
2287
+ declare function hasICloudCredentials(): boolean;
2288
+ /**
2289
+ * Clear iCloud authentication state
2290
+ * Note: This only clears local state; user remains signed in to iCloud
2291
+ */
2292
+ declare function clearICloudAuth(): void;
2293
+
2294
+ /**
2295
+ * iCloud CloudKit API utilities
2296
+ *
2297
+ * Uses Apple CloudKit JS for file operations in iCloud Drive.
2298
+ * Requires CloudKit container configuration and user authentication.
2299
+ *
2300
+ * CloudKit JS is loaded dynamically when needed.
2301
+ */
2302
+ /** Default folder path for iCloud backups */
2303
+ declare const DEFAULT_BACKUP_FOLDER = "conversations";
2304
+ /** CloudKit record structure */
2305
+ interface CloudKitRecord {
2306
+ recordName: string;
2307
+ recordType: string;
2308
+ fields: {
2309
+ filename?: {
2310
+ value: string;
2311
+ };
2312
+ data?: {
2313
+ value: {
2314
+ downloadURL: string;
2315
+ size: number;
2316
+ };
2317
+ };
2318
+ };
2319
+ modified?: {
2320
+ timestamp: number;
2321
+ };
2322
+ created?: {
2323
+ timestamp: number;
2324
+ };
2325
+ }
2326
+ /** CloudKit response structure */
2327
+ interface CloudKitResponse {
2328
+ records?: CloudKitRecord[];
2329
+ continuationMarker?: string;
2330
+ }
2331
+ declare global {
2332
+ interface Window {
2333
+ CloudKit?: {
2334
+ configure: (config: {
2335
+ containers: Array<{
2336
+ containerIdentifier: string;
2337
+ apiTokenAuth: {
2338
+ apiToken: string;
2339
+ persist: boolean;
2340
+ signInButton?: {
2341
+ id: string;
2342
+ theme?: string;
2343
+ };
2344
+ signOutButton?: {
2345
+ id: string;
2346
+ theme?: string;
2347
+ };
2348
+ };
2349
+ environment: string;
2350
+ }>;
2351
+ }) => void;
2352
+ getDefaultContainer: () => CloudKitContainer;
2353
+ };
2354
+ }
2355
+ }
2356
+ interface CloudKitContainer {
2357
+ containerIdentifier: string;
2358
+ setUpAuth: (options?: {
2359
+ buttonContainer?: HTMLElement;
2360
+ signInButtonId?: string;
2361
+ signOutButtonId?: string;
2362
+ }) => Promise<CloudKitUserIdentity | null>;
2363
+ whenUserSignsIn: () => Promise<CloudKitUserIdentity>;
2364
+ whenUserSignsOut: () => Promise<void>;
2365
+ privateCloudDatabase: CloudKitDatabase;
2366
+ }
2367
+ interface CloudKitUserIdentity {
2368
+ userRecordName: string;
2369
+ isDiscoverable?: boolean;
2370
+ }
2371
+ interface CloudKitDatabase {
2372
+ saveRecords: (records: CloudKitRecordToSave | CloudKitRecordToSave[], options?: {
2373
+ zoneName?: string;
2374
+ }) => Promise<CloudKitResponse>;
2375
+ deleteRecords: (recordNames: {
2376
+ recordName: string;
2377
+ }[], options?: {
2378
+ zoneName?: string;
2379
+ }) => Promise<CloudKitResponse>;
2380
+ performQuery: (query: CloudKitQuery) => Promise<CloudKitResponse>;
2381
+ fetchRecords: (recordNames: Array<{
2382
+ recordName: string;
2383
+ }>, options?: {
2384
+ desiredKeys?: string[];
2385
+ }) => Promise<CloudKitResponse>;
2386
+ }
2387
+ interface CloudKitRecordToSave {
2388
+ recordType: string;
2389
+ recordName?: string;
2390
+ fields: Record<string, {
2391
+ value: unknown;
2392
+ }>;
2393
+ }
2394
+ interface CloudKitQuery {
2395
+ recordType: string;
2396
+ filterBy?: Array<{
2397
+ fieldName: string;
2398
+ comparator: string;
2399
+ fieldValue: {
2400
+ value: unknown;
2401
+ };
2402
+ }>;
2403
+ sortBy?: Array<{
2404
+ fieldName: string;
2405
+ ascending: boolean;
2406
+ }>;
2407
+ }
2408
+
2409
+ /**
2410
+ * iCloud Backup Implementation
2411
+ *
2412
+ * Generic backup/restore functionality for iCloud storage.
2413
+ * Works directly with WatermelonDB database.
2414
+ */
2415
+
2416
+ interface ICloudExportResult {
2417
+ success: boolean;
2418
+ uploaded: number;
2419
+ skipped: number;
2420
+ total: number;
2421
+ }
2422
+ interface ICloudImportResult {
2423
+ success: boolean;
2424
+ restored: number;
2425
+ failed: number;
2426
+ total: number;
2427
+ /** True if no backups were found in iCloud */
2428
+ noBackupsFound?: boolean;
2429
+ }
2430
+
2431
+ /**
2432
+ * Options for useICloudBackup hook
2433
+ */
2434
+ interface UseICloudBackupOptions {
2435
+ /** WatermelonDB database instance */
2436
+ database: Database;
2437
+ /** Current user address (null if not signed in) */
2438
+ userAddress: string | null;
2439
+ /** Request encryption key for the user address */
2440
+ requestEncryptionKey: (address: string) => Promise<void>;
2441
+ /** Export a conversation to an encrypted blob */
2442
+ exportConversation: (conversationId: string, userAddress: string) => Promise<{
2443
+ success: boolean;
2444
+ blob?: Blob;
2445
+ }>;
2446
+ /** Import a conversation from an encrypted blob */
2447
+ importConversation: (blob: Blob, userAddress: string) => Promise<{
2448
+ success: boolean;
2449
+ }>;
2450
+ }
2451
+ /**
2452
+ * Result returned by useICloudBackup hook
2453
+ */
2454
+ interface UseICloudBackupResult {
2455
+ /** Backup all conversations to iCloud */
2456
+ backup: (options?: {
2457
+ onProgress?: (current: number, total: number) => void;
2458
+ }) => Promise<ICloudExportResult | {
2459
+ error: string;
2460
+ }>;
2461
+ /** Restore conversations from iCloud */
2462
+ restore: (options?: {
2463
+ onProgress?: (current: number, total: number) => void;
2464
+ }) => Promise<ICloudImportResult | {
2465
+ error: string;
2466
+ }>;
2467
+ /** Whether iCloud is configured */
2468
+ isConfigured: boolean;
2469
+ /** Whether user has signed in to iCloud */
2470
+ isAuthenticated: boolean;
2471
+ /** Whether CloudKit JS is available */
2472
+ isAvailable: boolean;
2473
+ }
2474
+ /**
2475
+ * React hook for iCloud backup and restore functionality.
2476
+ *
2477
+ * This hook provides methods to backup conversations to iCloud and restore them.
2478
+ * It handles all the logic for checking timestamps, skipping unchanged files,
2479
+ * authentication, and managing the backup/restore process.
2480
+ *
2481
+ * Must be used within an ICloudAuthProvider.
2482
+ *
2483
+ * @example
2484
+ * ```tsx
2485
+ * import { useICloudBackup } from "@reverbia/sdk/react";
2486
+ *
2487
+ * function BackupButton() {
2488
+ * const { backup, restore, isConfigured, isAuthenticated, isAvailable } = useICloudBackup({
2489
+ * database,
2490
+ * userAddress,
2491
+ * requestEncryptionKey,
2492
+ * exportConversation,
2493
+ * importConversation,
2494
+ * });
2495
+ *
2496
+ * if (!isAvailable) {
2497
+ * return <p>CloudKit JS not loaded</p>;
2498
+ * }
2499
+ *
2500
+ * const handleBackup = async () => {
2501
+ * const result = await backup({
2502
+ * onProgress: (current, total) => {
2503
+ * console.log(`Progress: ${current}/${total}`);
2504
+ * },
2505
+ * });
2506
+ *
2507
+ * if ("error" in result) {
2508
+ * console.error(result.error);
2509
+ * } else {
2510
+ * console.log(`Uploaded: ${result.uploaded}, Skipped: ${result.skipped}`);
2511
+ * }
2512
+ * };
2513
+ *
2514
+ * return <button onClick={handleBackup} disabled={!isConfigured}>Backup to iCloud</button>;
2515
+ * }
2516
+ * ```
2517
+ *
2518
+ * @category Hooks
2519
+ */
2520
+ declare function useICloudBackup(options: UseICloudBackupOptions): UseICloudBackupResult;
2521
+
2194
2522
  /**
2195
2523
  * Props for BackupAuthProvider
2196
2524
  *
2197
- * At least one of `dropboxAppKey` or `googleClientId` should be provided
2198
- * for the provider to be useful. Both are optional to allow using just
2199
- * one backup provider.
2525
+ * At least one of `dropboxAppKey`, `googleClientId`, or `icloudApiToken` should be provided
2526
+ * for the provider to be useful. All are optional to allow using just one backup provider.
2200
2527
  */
2201
2528
  interface BackupAuthProviderProps {
2202
2529
  /** Dropbox App Key (from Dropbox Developer Console). Optional - omit to disable Dropbox. */
@@ -2207,6 +2534,12 @@ interface BackupAuthProviderProps {
2207
2534
  googleClientId?: string;
2208
2535
  /** Google OAuth callback path (default: "/auth/google/callback") */
2209
2536
  googleCallbackPath?: string;
2537
+ /** CloudKit API token (from Apple Developer Console). Optional - omit to disable iCloud. */
2538
+ icloudApiToken?: string;
2539
+ /** CloudKit container identifier (default: "iCloud.Memoryless") */
2540
+ icloudContainerIdentifier?: string;
2541
+ /** CloudKit environment (default: "production") */
2542
+ icloudEnvironment?: "development" | "production";
2210
2543
  /**
2211
2544
  * API client for backend OAuth requests. Optional - uses the default SDK client if not provided.
2212
2545
  * Only needed if you have a custom client configuration (e.g., different baseUrl).
@@ -2240,6 +2573,8 @@ interface BackupAuthContextValue {
2240
2573
  dropbox: ProviderAuthState;
2241
2574
  /** Google Drive authentication state and methods */
2242
2575
  googleDrive: ProviderAuthState;
2576
+ /** iCloud authentication state and methods */
2577
+ icloud: ProviderAuthState;
2243
2578
  /** Check if any provider is configured */
2244
2579
  hasAnyProvider: boolean;
2245
2580
  /** Check if any provider is authenticated */
@@ -2265,6 +2600,8 @@ interface BackupAuthContextValue {
2265
2600
  * dropboxCallbackPath="/auth/dropbox/callback"
2266
2601
  * googleClientId={process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID}
2267
2602
  * googleCallbackPath="/auth/google/callback"
2603
+ * icloudApiToken={process.env.NEXT_PUBLIC_CLOUDKIT_API_TOKEN}
2604
+ * icloudContainerIdentifier="iCloud.Memoryless"
2268
2605
  * apiClient={apiClient}
2269
2606
  * >
2270
2607
  * <MyApp />
@@ -2275,7 +2612,7 @@ interface BackupAuthContextValue {
2275
2612
  *
2276
2613
  * @category Components
2277
2614
  */
2278
- declare function BackupAuthProvider({ dropboxAppKey, dropboxCallbackPath, googleClientId, googleCallbackPath, apiClient, children, }: BackupAuthProviderProps): JSX.Element;
2615
+ declare function BackupAuthProvider({ dropboxAppKey, dropboxCallbackPath, googleClientId, googleCallbackPath, icloudApiToken, icloudContainerIdentifier, icloudEnvironment, apiClient, children, }: BackupAuthProviderProps): JSX.Element;
2279
2616
  /**
2280
2617
  * Hook to access unified backup authentication state and methods.
2281
2618
  *
@@ -2369,11 +2706,11 @@ interface ProviderBackupState {
2369
2706
  /** Whether user has authenticated with this provider */
2370
2707
  isAuthenticated: boolean;
2371
2708
  /** Backup all conversations to this provider */
2372
- backup: (options?: BackupOperationOptions) => Promise<DropboxExportResult | GoogleDriveExportResult | {
2709
+ backup: (options?: BackupOperationOptions) => Promise<DropboxExportResult | GoogleDriveExportResult | ICloudExportResult | {
2373
2710
  error: string;
2374
2711
  }>;
2375
2712
  /** Restore conversations from this provider */
2376
- restore: (options?: BackupOperationOptions) => Promise<DropboxImportResult | GoogleDriveImportResult | {
2713
+ restore: (options?: BackupOperationOptions) => Promise<DropboxImportResult | GoogleDriveImportResult | ICloudImportResult | {
2377
2714
  error: string;
2378
2715
  }>;
2379
2716
  /** Request access to this provider (triggers OAuth if needed) */
@@ -2389,6 +2726,8 @@ interface UseBackupResult {
2389
2726
  dropbox: ProviderBackupState;
2390
2727
  /** Google Drive backup state and methods */
2391
2728
  googleDrive: ProviderBackupState;
2729
+ /** iCloud backup state and methods */
2730
+ icloud: ProviderBackupState;
2392
2731
  /** Whether any backup provider is configured */
2393
2732
  hasAnyProvider: boolean;
2394
2733
  /** Whether any backup provider is authenticated */
@@ -2462,4 +2801,4 @@ interface UseBackupResult {
2462
2801
  */
2463
2802
  declare function useBackup(options: UseBackupOptions): UseBackupResult;
2464
2803
 
2465
- export { DEFAULT_CONVERSATIONS_FOLDER as BACKUP_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as BACKUP_DRIVE_ROOT_FOLDER, type BackupAuthContextValue, BackupAuthProvider, type BackupAuthProviderProps, type BackupOperationOptions, Conversation as ChatConversation, Message as ChatMessage, type ChatRole, type ClientTool, type CreateConversationOptions, type CreateMemoryOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, DEFAULT_BACKUP_FOLDER, DEFAULT_CONVERSATIONS_FOLDER as DEFAULT_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as DEFAULT_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER as DEFAULT_DROPBOX_FOLDER, DEFAULT_TOOL_SELECTOR_MODEL, type DropboxAuthContextValue, DropboxAuthProvider, type DropboxAuthProviderProps, type DropboxExportResult, type DropboxImportResult, type FileMetadata, type GoogleDriveAuthContextValue, GoogleDriveAuthProvider, type GoogleDriveAuthProviderProps, type GoogleDriveExportResult, type GoogleDriveImportResult, type MemoryItem, type MemoryType, type OCRFile, type PdfFile, type ProgressCallback, type ProviderAuthState, type ProviderBackupState, type SearchMessagesOptions, type SearchSource, type SendMessageWithStorageArgs, type SendMessageWithStorageResult, type SignMessageFn, type ChatCompletionUsage as StoredChatCompletionUsage, type StoredConversation, type StoredMemory, Memory as StoredMemoryModel, type StoredMemoryWithSimilarity, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, ModelPreference as StoredModelPreferenceModel, type ToolExecutionResult, type ToolParameter, type ToolSelectionResult, type UpdateMemoryOptions, type UpdateModelPreferenceOptions, type UseBackupOptions, type UseBackupResult, type UseChatStorageOptions, type UseChatStorageResult, type UseDropboxBackupOptions, type UseDropboxBackupResult, type UseGoogleDriveBackupOptions, type UseGoogleDriveBackupResult, type UseMemoryStorageOptions, type UseMemoryStorageResult, type UseSettingsOptions, type UseSettingsResult, chatStorageMigrations, chatStorageSchema, clearToken as clearDropboxToken, clearGoogleDriveToken, createMemoryContextSystemMessage, decryptData, decryptDataBytes, encryptData, executeTool, extractConversationContext, formatMemoriesForChat, generateCompositeKey, generateConversationId, generateUniqueKey, getGoogleDriveStoredToken, hasDropboxCredentials, hasEncryptionKey, hasGoogleDriveCredentials, memoryStorageSchema, requestEncryptionKey, sdkMigrations, sdkModelClasses, sdkSchema, selectTool, settingsStorageSchema, useBackup, useBackupAuth, useChat, useChatStorage, useDropboxAuth, useDropboxBackup, useEncryption, useGoogleDriveAuth, useGoogleDriveBackup, useImageGeneration, useMemoryStorage, useModels, useOCR, usePdf, useSearch, useSettings };
2804
+ export { DEFAULT_CONVERSATIONS_FOLDER as BACKUP_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as BACKUP_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER as BACKUP_ICLOUD_FOLDER, type BackupAuthContextValue, BackupAuthProvider, type BackupAuthProviderProps, type BackupOperationOptions, Conversation as ChatConversation, Message as ChatMessage, type ChatRole, type ClientTool, type CreateConversationOptions, type CreateMemoryOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_BACKUP_FOLDER, DEFAULT_CONVERSATIONS_FOLDER as DEFAULT_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as DEFAULT_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_DROPBOX_FOLDER, DEFAULT_BACKUP_FOLDER as DEFAULT_ICLOUD_BACKUP_FOLDER, DEFAULT_TOOL_SELECTOR_MODEL, type DropboxAuthContextValue, DropboxAuthProvider, type DropboxAuthProviderProps, type DropboxExportResult, type DropboxImportResult, type FileMetadata, type GoogleDriveAuthContextValue, GoogleDriveAuthProvider, type GoogleDriveAuthProviderProps, type GoogleDriveExportResult, type GoogleDriveImportResult, type ICloudAuthContextValue, ICloudAuthProvider, type ICloudAuthProviderProps, type ICloudExportResult, type ICloudImportResult, type MemoryItem, type MemoryType, type OCRFile, type PdfFile, type ProgressCallback, type ProviderAuthState, type ProviderBackupState, type SearchMessagesOptions, type SearchSource, type SendMessageWithStorageArgs, type SendMessageWithStorageResult, type SignMessageFn, type ChatCompletionUsage as StoredChatCompletionUsage, type StoredConversation, type StoredMemory, Memory as StoredMemoryModel, type StoredMemoryWithSimilarity, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, ModelPreference as StoredModelPreferenceModel, type ToolExecutionResult, type ToolParameter, type ToolSelectionResult, type UpdateMemoryOptions, type UpdateModelPreferenceOptions, type UseBackupOptions, type UseBackupResult, type UseChatStorageOptions, type UseChatStorageResult, type UseDropboxBackupOptions, type UseDropboxBackupResult, type UseGoogleDriveBackupOptions, type UseGoogleDriveBackupResult, type UseICloudBackupOptions, type UseICloudBackupResult, type UseMemoryStorageOptions, type UseMemoryStorageResult, type UseSettingsOptions, type UseSettingsResult, chatStorageMigrations, chatStorageSchema, clearToken as clearDropboxToken, clearGoogleDriveToken, clearICloudAuth, createMemoryContextSystemMessage, decryptData, decryptDataBytes, encryptData, executeTool, extractConversationContext, formatMemoriesForChat, generateCompositeKey, generateConversationId, generateUniqueKey, getGoogleDriveStoredToken, hasDropboxCredentials, hasEncryptionKey, hasGoogleDriveCredentials, hasICloudCredentials, memoryStorageSchema, requestEncryptionKey, sdkMigrations, sdkModelClasses, sdkSchema, selectTool, settingsStorageSchema, useBackup, useBackupAuth, useChat, useChatStorage, useDropboxAuth, useDropboxBackup, useEncryption, useGoogleDriveAuth, useGoogleDriveBackup, useICloudAuth, useICloudBackup, useImageGeneration, useMemoryStorage, useModels, useOCR, usePdf, useSearch, useSettings };