@fluxbase/sdk 0.0.1-rc.26 → 0.0.1-rc.28

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.ts CHANGED
@@ -131,7 +131,7 @@ interface OrderBy {
131
131
  nulls?: 'first' | 'last';
132
132
  }
133
133
  interface RealtimeMessage {
134
- type: 'subscribe' | 'unsubscribe' | 'heartbeat' | 'broadcast' | 'ack' | 'error';
134
+ type: 'subscribe' | 'unsubscribe' | 'heartbeat' | 'broadcast' | 'presence' | 'ack' | 'error';
135
135
  channel?: string;
136
136
  event?: string;
137
137
  schema?: string;
@@ -140,6 +140,8 @@ interface RealtimeMessage {
140
140
  payload?: unknown;
141
141
  error?: string;
142
142
  config?: PostgresChangesConfig;
143
+ presence?: any;
144
+ broadcast?: any;
143
145
  }
144
146
  interface PostgresChangesConfig {
145
147
  event: 'INSERT' | 'UPDATE' | 'DELETE' | '*';
@@ -183,6 +185,57 @@ interface RealtimeChangePayload {
183
185
  timestamp: string;
184
186
  }
185
187
  type RealtimeCallback = (payload: RealtimePostgresChangesPayload) => void;
188
+ /**
189
+ * Realtime channel configuration options
190
+ */
191
+ interface RealtimeChannelConfig {
192
+ broadcast?: {
193
+ self?: boolean;
194
+ ack?: boolean;
195
+ };
196
+ presence?: {
197
+ key?: string;
198
+ };
199
+ }
200
+ /**
201
+ * Presence state for a user
202
+ */
203
+ interface PresenceState {
204
+ [key: string]: any;
205
+ }
206
+ /**
207
+ * Realtime presence payload structure
208
+ */
209
+ interface RealtimePresencePayload {
210
+ event: 'sync' | 'join' | 'leave';
211
+ key?: string;
212
+ newPresences?: PresenceState[];
213
+ leftPresences?: PresenceState[];
214
+ currentPresences?: Record<string, PresenceState[]>;
215
+ }
216
+ /**
217
+ * Presence callback type
218
+ */
219
+ type PresenceCallback = (payload: RealtimePresencePayload) => void;
220
+ /**
221
+ * Broadcast message structure
222
+ */
223
+ interface BroadcastMessage {
224
+ type: 'broadcast';
225
+ event: string;
226
+ payload: any;
227
+ }
228
+ /**
229
+ * Realtime broadcast payload structure
230
+ */
231
+ interface RealtimeBroadcastPayload {
232
+ event: string;
233
+ payload: any;
234
+ }
235
+ /**
236
+ * Broadcast callback type
237
+ */
238
+ type BroadcastCallback = (payload: RealtimeBroadcastPayload) => void;
186
239
  /**
187
240
  * File object returned by storage operations
188
241
  * Compatible with Supabase FileObject structure
@@ -201,11 +254,24 @@ interface FileObject {
201
254
  * @deprecated Use FileObject instead. This alias is provided for backwards compatibility.
202
255
  */
203
256
  type StorageObject = FileObject;
257
+ /**
258
+ * Upload progress information
259
+ */
260
+ interface UploadProgress {
261
+ /** Number of bytes uploaded so far */
262
+ loaded: number;
263
+ /** Total number of bytes to upload */
264
+ total: number;
265
+ /** Upload percentage (0-100) */
266
+ percentage: number;
267
+ }
204
268
  interface UploadOptions {
205
269
  contentType?: string;
206
270
  metadata?: Record<string, string>;
207
271
  cacheControl?: string;
208
272
  upsert?: boolean;
273
+ /** Optional callback to track upload progress */
274
+ onUploadProgress?: (progress: UploadProgress) => void;
209
275
  }
210
276
  interface ListOptions {
211
277
  prefix?: string;
@@ -1124,12 +1190,17 @@ declare class RealtimeChannel {
1124
1190
  private token;
1125
1191
  private channelName;
1126
1192
  private callbacks;
1193
+ private presenceCallbacks;
1194
+ private broadcastCallbacks;
1127
1195
  private subscriptionConfig;
1196
+ private _presenceState;
1197
+ private myPresenceKey;
1198
+ private config;
1128
1199
  private reconnectAttempts;
1129
1200
  private maxReconnectAttempts;
1130
1201
  private reconnectDelay;
1131
1202
  private heartbeatInterval;
1132
- constructor(url: string, channelName: string, token?: string | null);
1203
+ constructor(url: string, channelName: string, token?: string | null, config?: RealtimeChannelConfig);
1133
1204
  /**
1134
1205
  * Listen to postgres_changes with optional row-level filtering
1135
1206
  *
@@ -1166,6 +1237,42 @@ declare class RealtimeChannel {
1166
1237
  * ```
1167
1238
  */
1168
1239
  on(event: "INSERT" | "UPDATE" | "DELETE" | "*", callback: RealtimeCallback): this;
1240
+ /**
1241
+ * Listen to broadcast messages
1242
+ *
1243
+ * @param event - 'broadcast'
1244
+ * @param config - Configuration with event name
1245
+ * @param callback - Function to call when broadcast received
1246
+ * @returns This channel for chaining
1247
+ *
1248
+ * @example
1249
+ * ```typescript
1250
+ * channel.on('broadcast', { event: 'cursor-pos' }, (payload) => {
1251
+ * console.log('Cursor moved:', payload)
1252
+ * })
1253
+ * ```
1254
+ */
1255
+ on(event: "broadcast", config: {
1256
+ event: string;
1257
+ }, callback: BroadcastCallback): this;
1258
+ /**
1259
+ * Listen to presence events
1260
+ *
1261
+ * @param event - 'presence'
1262
+ * @param config - Configuration with event type (sync, join, leave)
1263
+ * @param callback - Function to call when presence changes
1264
+ * @returns This channel for chaining
1265
+ *
1266
+ * @example
1267
+ * ```typescript
1268
+ * channel.on('presence', { event: 'sync' }, (payload) => {
1269
+ * console.log('Presence synced:', payload)
1270
+ * })
1271
+ * ```
1272
+ */
1273
+ on(event: "presence", config: {
1274
+ event: "sync" | "join" | "leave";
1275
+ }, callback: PresenceCallback): this;
1169
1276
  /**
1170
1277
  * Remove a callback
1171
1278
  */
@@ -1182,6 +1289,60 @@ declare class RealtimeChannel {
1182
1289
  * @returns Promise resolving to status string (Supabase-compatible)
1183
1290
  */
1184
1291
  unsubscribe(timeout?: number): Promise<"ok" | "timed out" | "error">;
1292
+ /**
1293
+ * Send a broadcast message to all subscribers on this channel
1294
+ *
1295
+ * @param message - Broadcast message with type, event, and payload
1296
+ * @returns Promise resolving to status
1297
+ *
1298
+ * @example
1299
+ * ```typescript
1300
+ * await channel.send({
1301
+ * type: 'broadcast',
1302
+ * event: 'cursor-pos',
1303
+ * payload: { x: 100, y: 200 }
1304
+ * })
1305
+ * ```
1306
+ */
1307
+ send(message: BroadcastMessage): Promise<"ok" | "error">;
1308
+ /**
1309
+ * Track user presence on this channel
1310
+ *
1311
+ * @param state - Presence state to track
1312
+ * @returns Promise resolving to status
1313
+ *
1314
+ * @example
1315
+ * ```typescript
1316
+ * await channel.track({
1317
+ * user_id: 123,
1318
+ * status: 'online'
1319
+ * })
1320
+ * ```
1321
+ */
1322
+ track(state: PresenceState): Promise<"ok" | "error">;
1323
+ /**
1324
+ * Stop tracking presence on this channel
1325
+ *
1326
+ * @returns Promise resolving to status
1327
+ *
1328
+ * @example
1329
+ * ```typescript
1330
+ * await channel.untrack()
1331
+ * ```
1332
+ */
1333
+ untrack(): Promise<"ok" | "error">;
1334
+ /**
1335
+ * Get current presence state for all users on this channel
1336
+ *
1337
+ * @returns Current presence state
1338
+ *
1339
+ * @example
1340
+ * ```typescript
1341
+ * const state = channel.presenceState()
1342
+ * console.log('Online users:', Object.keys(state).length)
1343
+ * ```
1344
+ */
1345
+ presenceState(): Record<string, PresenceState[]>;
1185
1346
  /**
1186
1347
  * Internal: Connect to WebSocket
1187
1348
  */
@@ -1193,7 +1354,7 @@ declare class RealtimeChannel {
1193
1354
  /**
1194
1355
  * Internal: Send a message
1195
1356
  */
1196
- private send;
1357
+ private sendMessage;
1197
1358
  /**
1198
1359
  * Internal: Handle incoming message
1199
1360
  */
@@ -1201,7 +1362,15 @@ declare class RealtimeChannel {
1201
1362
  /**
1202
1363
  * Internal: Handle broadcast message
1203
1364
  */
1204
- private handleBroadcast;
1365
+ private handleBroadcastMessage;
1366
+ /**
1367
+ * Internal: Handle presence message
1368
+ */
1369
+ private handlePresenceMessage;
1370
+ /**
1371
+ * Internal: Handle postgres_changes message
1372
+ */
1373
+ private handlePostgresChanges;
1205
1374
  /**
1206
1375
  * Internal: Start heartbeat interval
1207
1376
  */
@@ -1221,18 +1390,43 @@ declare class FluxbaseRealtime {
1221
1390
  private channels;
1222
1391
  constructor(url: string, token?: string | null);
1223
1392
  /**
1224
- * Create or get a channel
1393
+ * Create or get a channel with optional configuration
1394
+ *
1225
1395
  * @param channelName - Channel name (e.g., 'table:public.products')
1396
+ * @param config - Optional channel configuration
1397
+ * @returns RealtimeChannel instance
1398
+ *
1399
+ * @example
1400
+ * ```typescript
1401
+ * const channel = realtime.channel('room-1', {
1402
+ * broadcast: { self: true, ack: true },
1403
+ * presence: { key: 'user-123' }
1404
+ * })
1405
+ * ```
1226
1406
  */
1227
- channel(channelName: string): RealtimeChannel;
1407
+ channel(channelName: string, config?: RealtimeChannelConfig): RealtimeChannel;
1408
+ /**
1409
+ * Remove a specific channel
1410
+ *
1411
+ * @param channel - The channel to remove
1412
+ * @returns Promise resolving to status
1413
+ *
1414
+ * @example
1415
+ * ```typescript
1416
+ * const channel = realtime.channel('room-1')
1417
+ * await realtime.removeChannel(channel)
1418
+ * ```
1419
+ */
1420
+ removeChannel(channel: RealtimeChannel): Promise<"ok" | "error">;
1228
1421
  /**
1229
1422
  * Remove all channels
1230
1423
  */
1231
1424
  removeAllChannels(): void;
1232
1425
  /**
1233
1426
  * Update auth token for all channels
1427
+ * @param token - The new auth token
1234
1428
  */
1235
- setToken(token: string | null): void;
1429
+ setAuth(token: string | null): void;
1236
1430
  }
1237
1431
 
1238
1432
  /**
@@ -1302,21 +1496,28 @@ declare class FluxbaseAuth {
1302
1496
  private stateChangeListeners;
1303
1497
  constructor(fetch: FluxbaseFetch, autoRefresh?: boolean, persist?: boolean);
1304
1498
  /**
1305
- * Get the current session
1499
+ * Get the current session (Supabase-compatible)
1500
+ * Returns the session from the client-side cache without making a network request
1306
1501
  */
1307
- getSession(): AuthSession | null;
1502
+ getSession(): Promise<FluxbaseResponse<{
1503
+ session: AuthSession | null;
1504
+ }>>;
1308
1505
  /**
1309
- * Get the current user
1506
+ * Get the current user (Supabase-compatible)
1507
+ * Returns the user from the client-side session without making a network request
1508
+ * For server-side validation, use getCurrentUser() instead
1310
1509
  */
1311
- getUser(): User | null;
1510
+ getUser(): Promise<FluxbaseResponse<{
1511
+ user: User | null;
1512
+ }>>;
1312
1513
  /**
1313
1514
  * Get the current access token
1314
1515
  */
1315
1516
  getAccessToken(): string | null;
1316
1517
  /**
1317
- * Listen to auth state changes
1518
+ * Listen to auth state changes (Supabase-compatible)
1318
1519
  * @param callback - Function called when auth state changes
1319
- * @returns Subscription object with unsubscribe method
1520
+ * @returns Object containing subscription data
1320
1521
  *
1321
1522
  * @example
1322
1523
  * ```typescript
@@ -1328,7 +1529,11 @@ declare class FluxbaseAuth {
1328
1529
  * subscription.unsubscribe()
1329
1530
  * ```
1330
1531
  */
1331
- onAuthStateChange(callback: AuthStateChangeCallback): AuthSubscription;
1532
+ onAuthStateChange(callback: AuthStateChangeCallback): {
1533
+ data: {
1534
+ subscription: AuthSubscription;
1535
+ };
1536
+ };
1332
1537
  /**
1333
1538
  * Sign in with email and password
1334
1539
  * Returns AuthSession if successful, or SignInWith2FAResponse if 2FA is required
@@ -1349,9 +1554,13 @@ declare class FluxbaseAuth {
1349
1554
  */
1350
1555
  signOut(): Promise<VoidResponse>;
1351
1556
  /**
1352
- * Refresh the access token
1557
+ * Refresh the session (Supabase-compatible)
1558
+ * Returns a new session with refreshed tokens
1353
1559
  */
1354
- refreshToken(): Promise<SessionResponse>;
1560
+ refreshSession(): Promise<FluxbaseResponse<{
1561
+ session: AuthSession;
1562
+ user: User;
1563
+ }>>;
1355
1564
  /**
1356
1565
  * Get the current user from the server
1357
1566
  */
@@ -1361,9 +1570,15 @@ declare class FluxbaseAuth {
1361
1570
  */
1362
1571
  updateUser(data: Partial<Pick<User, "email" | "metadata">>): Promise<UserResponse>;
1363
1572
  /**
1364
- * Set the auth token manually
1573
+ * Set the session manually (Supabase-compatible)
1574
+ * Useful for restoring a session from storage or SSR scenarios
1575
+ * @param session - Object containing access_token and refresh_token
1576
+ * @returns Promise with session data
1365
1577
  */
1366
- setToken(token: string): void;
1578
+ setSession(session: {
1579
+ access_token: string;
1580
+ refresh_token: string;
1581
+ }): Promise<FluxbaseAuthResponse>;
1367
1582
  /**
1368
1583
  * Setup 2FA for the current user
1369
1584
  * Returns TOTP secret and QR code URL
@@ -1463,7 +1678,7 @@ declare class FluxbaseAuth {
1463
1678
  /**
1464
1679
  * Internal: Set the session and persist it
1465
1680
  */
1466
- private setSession;
1681
+ private setSessionInternal;
1467
1682
  /**
1468
1683
  * Internal: Clear the session
1469
1684
  */
@@ -1504,6 +1719,11 @@ declare class StorageBucket {
1504
1719
  } | null;
1505
1720
  error: Error | null;
1506
1721
  }>;
1722
+ /**
1723
+ * Upload with progress tracking using XMLHttpRequest
1724
+ * @private
1725
+ */
1726
+ private uploadWithProgress;
1507
1727
  /**
1508
1728
  * Download a file from the bucket
1509
1729
  * @param path - The path/key of the file
@@ -4383,33 +4603,42 @@ declare class FluxbaseClient<Database = any, _SchemaName extends string & keyof
4383
4603
  */
4384
4604
  setAuthToken(token: string | null): void;
4385
4605
  /**
4386
- * Create or get a realtime channel (Supabase-compatible alias)
4387
- *
4388
- * This is a convenience method that delegates to client.realtime.channel().
4389
- * Both patterns work identically:
4390
- * - client.channel('room-1') - Supabase-style
4391
- * - client.realtime.channel('room-1') - Fluxbase-style
4606
+ * Create or get a realtime channel (Supabase-compatible)
4392
4607
  *
4393
4608
  * @param name - Channel name
4609
+ * @param config - Optional channel configuration
4394
4610
  * @returns RealtimeChannel instance
4395
4611
  *
4396
4612
  * @example
4397
4613
  * ```typescript
4398
- * // Supabase-compatible usage
4399
- * const channel = client.channel('room-1')
4400
- * .on('postgres_changes', {
4401
- * event: '*',
4402
- * schema: 'public',
4403
- * table: 'messages'
4404
- * }, (payload) => {
4405
- * console.log('Change:', payload)
4614
+ * const channel = client.channel('room-1', {
4615
+ * broadcast: { self: true },
4616
+ * presence: { key: 'user-123' }
4617
+ * })
4618
+ * .on('broadcast', { event: 'message' }, (payload) => {
4619
+ * console.log('Message:', payload)
4406
4620
  * })
4407
4621
  * .subscribe()
4408
4622
  * ```
4409
4623
  *
4410
4624
  * @category Realtime
4411
4625
  */
4412
- channel(name: string): RealtimeChannel;
4626
+ channel(name: string, config?: RealtimeChannelConfig): RealtimeChannel;
4627
+ /**
4628
+ * Remove a realtime channel (Supabase-compatible)
4629
+ *
4630
+ * @param channel - The channel to remove
4631
+ * @returns Promise resolving to status
4632
+ *
4633
+ * @example
4634
+ * ```typescript
4635
+ * const channel = client.channel('room-1')
4636
+ * await client.removeChannel(channel)
4637
+ * ```
4638
+ *
4639
+ * @category Realtime
4640
+ */
4641
+ removeChannel(channel: RealtimeChannel): Promise<"error" | "ok">;
4413
4642
  /**
4414
4643
  * Get the internal HTTP client
4415
4644
  *
@@ -4465,4 +4694,4 @@ declare class FluxbaseClient<Database = any, _SchemaName extends string & keyof
4465
4694
  */
4466
4695
  declare function createClient<Database = any, SchemaName extends string & keyof Database = any>(fluxbaseUrl: string, fluxbaseKey: string, options?: FluxbaseClientOptions): FluxbaseClient<Database, SchemaName>;
4467
4696
 
4468
- export { type APIKey, APIKeysManager, type AcceptInvitationRequest, type AcceptInvitationResponse, type AdminAuthResponse, type AdminLoginRequest, type AdminMeResponse, type AdminRefreshRequest, type AdminRefreshResponse, type AdminSetupRequest, type AdminSetupStatusResponse, type AdminUser, type AppSettings, AppSettingsManager, type AuthResponse, type AuthSession, type AuthSettings, AuthSettingsManager, type AuthenticationSettings, type Column, type CreateAPIKeyRequest, type CreateAPIKeyResponse, type CreateColumnRequest, type CreateFunctionRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateOAuthProviderRequest, type CreateOAuthProviderResponse, type CreateSchemaRequest, type CreateSchemaResponse, type CreateTableRequest, type CreateTableResponse, type CreateWebhookRequest, DDLManager, type DataResponse, type DeleteAPIKeyResponse, type DeleteOAuthProviderResponse, type DeleteTableResponse, type DeleteUserResponse, type DeleteWebhookResponse, type EdgeFunction, type EdgeFunctionExecution, type EmailSettings, type EmailTemplate, EmailTemplateManager, type EmailTemplateType, type EnrichedUser, type FeatureSettings, type FileObject, type FilterOperator, FluxbaseAdmin, FluxbaseAuth, type FluxbaseAuthResponse, FluxbaseClient, type FluxbaseClientOptions, type FluxbaseError, FluxbaseFetch, FluxbaseFunctions, FluxbaseManagement, FluxbaseOAuth, FluxbaseRealtime, type FluxbaseResponse, FluxbaseSettings, FluxbaseStorage, type FunctionInvokeOptions, type GetImpersonationResponse, type HttpMethod, type ImpersonateAnonRequest, type ImpersonateServiceRequest, type ImpersonateUserRequest, ImpersonationManager, type ImpersonationSession, type ImpersonationTargetUser, type ImpersonationType, type Invitation, InvitationsManager, type InviteUserRequest, type InviteUserResponse, type ListAPIKeysResponse, type ListEmailTemplatesResponse, type ListImpersonationSessionsOptions, type ListImpersonationSessionsResponse, type ListInvitationsOptions, type ListInvitationsResponse, type ListOAuthProvidersResponse, type ListOptions, type ListSchemasResponse, type ListSystemSettingsResponse, type ListTablesResponse, type ListUsersOptions, type ListUsersResponse, type ListWebhookDeliveriesResponse, type ListWebhooksResponse, type MailgunSettings, type OAuthProvider, OAuthProviderManager, type OrderBy, type OrderDirection, type PostgresChangesConfig, type PostgrestError, type PostgrestResponse, QueryBuilder, type QueryFilter, type RealtimeCallback, type RealtimeChangePayload, RealtimeChannel, type RealtimeMessage, type RealtimePostgresChangesPayload, type RequestOptions, type ResetUserPasswordResponse, type RevokeAPIKeyResponse, type RevokeInvitationResponse, type SESSettings, type SMTPSettings, type Schema, type SecuritySettings, type SendGridSettings, type SessionResponse, SettingsClient, type SignInCredentials, type SignInWith2FAResponse, type SignUpCredentials, type SignedUrlOptions, type StartImpersonationResponse, type StopImpersonationResponse, StorageBucket, type StorageObject, type SupabaseAuthResponse, type SupabaseResponse, type SystemSetting, SystemSettingsManager, type Table, type TestEmailTemplateRequest, type TestWebhookResponse, type TwoFactorEnableResponse, type TwoFactorSetupResponse, type TwoFactorStatusResponse, type TwoFactorVerifyRequest, type UpdateAPIKeyRequest, type UpdateAppSettingsRequest, type UpdateAuthSettingsRequest, type UpdateAuthSettingsResponse, type UpdateEmailTemplateRequest, type UpdateFunctionRequest, type UpdateOAuthProviderRequest, type UpdateOAuthProviderResponse, type UpdateSystemSettingRequest, type UpdateUserRoleRequest, type UpdateWebhookRequest, type UploadOptions, type User, type UserResponse, type ValidateInvitationResponse, type VoidResponse, type Webhook, type WebhookDelivery, WebhooksManager, createClient };
4697
+ export { type APIKey, APIKeysManager, type AcceptInvitationRequest, type AcceptInvitationResponse, type AdminAuthResponse, type AdminLoginRequest, type AdminMeResponse, type AdminRefreshRequest, type AdminRefreshResponse, type AdminSetupRequest, type AdminSetupStatusResponse, type AdminUser, type AppSettings, AppSettingsManager, type AuthResponse, type AuthSession, type AuthSettings, AuthSettingsManager, type AuthenticationSettings, type BroadcastCallback, type BroadcastMessage, type Column, type CreateAPIKeyRequest, type CreateAPIKeyResponse, type CreateColumnRequest, type CreateFunctionRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateOAuthProviderRequest, type CreateOAuthProviderResponse, type CreateSchemaRequest, type CreateSchemaResponse, type CreateTableRequest, type CreateTableResponse, type CreateWebhookRequest, DDLManager, type DataResponse, type DeleteAPIKeyResponse, type DeleteOAuthProviderResponse, type DeleteTableResponse, type DeleteUserResponse, type DeleteWebhookResponse, type EdgeFunction, type EdgeFunctionExecution, type EmailSettings, type EmailTemplate, EmailTemplateManager, type EmailTemplateType, type EnrichedUser, type FeatureSettings, type FileObject, type FilterOperator, FluxbaseAdmin, FluxbaseAuth, type FluxbaseAuthResponse, FluxbaseClient, type FluxbaseClientOptions, type FluxbaseError, FluxbaseFetch, FluxbaseFunctions, FluxbaseManagement, FluxbaseOAuth, FluxbaseRealtime, type FluxbaseResponse, FluxbaseSettings, FluxbaseStorage, type FunctionInvokeOptions, type GetImpersonationResponse, type HttpMethod, type ImpersonateAnonRequest, type ImpersonateServiceRequest, type ImpersonateUserRequest, ImpersonationManager, type ImpersonationSession, type ImpersonationTargetUser, type ImpersonationType, type Invitation, InvitationsManager, type InviteUserRequest, type InviteUserResponse, type ListAPIKeysResponse, type ListEmailTemplatesResponse, type ListImpersonationSessionsOptions, type ListImpersonationSessionsResponse, type ListInvitationsOptions, type ListInvitationsResponse, type ListOAuthProvidersResponse, type ListOptions, type ListSchemasResponse, type ListSystemSettingsResponse, type ListTablesResponse, type ListUsersOptions, type ListUsersResponse, type ListWebhookDeliveriesResponse, type ListWebhooksResponse, type MailgunSettings, type OAuthProvider, OAuthProviderManager, type OrderBy, type OrderDirection, type PostgresChangesConfig, type PostgrestError, type PostgrestResponse, type PresenceCallback, type PresenceState, QueryBuilder, type QueryFilter, type RealtimeBroadcastPayload, type RealtimeCallback, type RealtimeChangePayload, RealtimeChannel, type RealtimeChannelConfig, type RealtimeMessage, type RealtimePostgresChangesPayload, type RealtimePresencePayload, type RequestOptions, type ResetUserPasswordResponse, type RevokeAPIKeyResponse, type RevokeInvitationResponse, type SESSettings, type SMTPSettings, type Schema, type SecuritySettings, type SendGridSettings, type SessionResponse, SettingsClient, type SignInCredentials, type SignInWith2FAResponse, type SignUpCredentials, type SignedUrlOptions, type StartImpersonationResponse, type StopImpersonationResponse, StorageBucket, type StorageObject, type SupabaseAuthResponse, type SupabaseResponse, type SystemSetting, SystemSettingsManager, type Table, type TestEmailTemplateRequest, type TestWebhookResponse, type TwoFactorEnableResponse, type TwoFactorSetupResponse, type TwoFactorStatusResponse, type TwoFactorVerifyRequest, type UpdateAPIKeyRequest, type UpdateAppSettingsRequest, type UpdateAuthSettingsRequest, type UpdateAuthSettingsResponse, type UpdateEmailTemplateRequest, type UpdateFunctionRequest, type UpdateOAuthProviderRequest, type UpdateOAuthProviderResponse, type UpdateSystemSettingRequest, type UpdateUserRoleRequest, type UpdateWebhookRequest, type UploadOptions, type UploadProgress, type User, type UserResponse, type ValidateInvitationResponse, type VoidResponse, type Webhook, type WebhookDelivery, WebhooksManager, createClient };