import { GoTrueClient } from '../gotrue-js/src/index' import { RealtimeClientOptions } from '../realtime-js/src/index' type GoTrueClientOptions = ConstructorParameters[0] export interface SupabaseAuthClientOptions extends GoTrueClientOptions {} export type Fetch = typeof fetch export type SupabaseClientOptions = { /** * The Postgres schema which your tables belong to. Must be on the list of exposed schemas in Supabase. Defaults to `public`. */ db?: { schema?: SchemaName } auth?: { /** * Automatically refreshes the token for logged in users. Defaults to true. */ autoRefreshToken?: boolean /** * Optional key name used for storing tokens in local storage. */ storageKey?: string /** * Whether to persist a logged in session to storage. */ persistSession?: boolean /** * Detect a session from the URL. Used for OAuth login callbacks. Defaults to true. */ detectSessionInUrl?: boolean /** * A storage provider. Used to store the logged in session. Defaults to true. */ storage?: SupabaseAuthClientOptions['storage'] } /** * Options passed to the realtime-js instance */ realtime?: RealtimeClientOptions global?: { /** * A custom `fetch` implementation. */ fetch?: Fetch /** * Optional headers for initializing the client. */ headers?: Record } } export type GenericTable = { Row: Record Insert: Record Update: Record } export type GenericUpdatableView = { Row: Record Insert: Record Update: Record } export type GenericNonUpdatableView = { Row: Record } export type GenericView = GenericUpdatableView | GenericNonUpdatableView export type GenericFunction = { Args: Record Returns: unknown } export type GenericSchema = { Tables: Record Views: Record Functions: Record }