import { SupabaseClient as SupabaseJSClient } from '@supabase/supabase-js'; import { SupabaseClientConfig, SupabaseResult, QueryOptions, InsertOptions, UpdateOptions, DeleteOptions, StorageUploadOptions, StorageDownloadOptions, AuthSignInOptions, AuthSignUpOptions, RPCOptions, QueryFilter } from './types'; /** * Supabase client wrapper with logging, retry logic, and structured error handling */ export declare class SupabaseClient { private client; private logger; private config; constructor(config: SupabaseClientConfig); /** * Execute operation with retry logic */ private executeWithRetry; /** * Apply filters to a query builder */ private applyFilters; /** * Query data from a table */ query(table: string, options?: QueryOptions): Promise>; /** * Insert data into a table */ insert(table: string, data: Partial | Partial[], options?: InsertOptions): Promise>; /** * Update data in a table */ update(table: string, data: Partial, filters: QueryFilter[], options?: UpdateOptions): Promise>; /** * Delete data from a table */ delete(table: string, filters: QueryFilter[], options?: DeleteOptions): Promise>; /** * Call an RPC function */ rpc(functionName: string, options?: RPCOptions): Promise>; /** * Upload file to storage */ storageUpload(bucket: string, path: string, file: File | Blob | Buffer, options?: StorageUploadOptions): Promise>; /** * Download file from storage */ storageDownload(bucket: string, path: string, options?: StorageDownloadOptions): Promise>; /** * Get public URL for storage file */ getStoragePublicUrl(bucket: string, path: string): SupabaseResult; /** * Sign in with email and password */ authSignIn(options: AuthSignInOptions): Promise>; /** * Sign up with email and password */ authSignUp(options: AuthSignUpOptions): Promise>; /** * Sign out current user */ authSignOut(): Promise>; /** * Get current user session */ authGetSession(): Promise>; /** * Get the underlying Supabase client for advanced usage */ getClient(): SupabaseJSClient; }