import { SupabaseClient } from '@supabase/supabase-js'; import { BaseDatabaseAdapter, IDatabaseConfig, IDatabaseHealth, IQueryResult, ITransaction } from '@bernierllc/database-adapter-core'; /** * Supabase-specific configuration */ export interface ISupabaseConfig { supabaseUrl?: string; supabaseAnonKey?: string; supabaseServiceKey?: string; } /** * PostgreSQL database adapter with Supabase support * Implements connection pooling, RLS, and real-time features */ export declare class PostgreSQLAdapter extends BaseDatabaseAdapter { private pool; private supabase; private rlsManager; private logger; constructor(config: IDatabaseConfig & ISupabaseConfig); /** * Connect to PostgreSQL with connection pooling */ connect(): Promise; /** * Disconnect and close pool */ disconnect(): Promise; /** * Execute query with RLS context */ query(sql: string, params?: unknown[]): Promise>; /** * Begin transaction with RLS context */ beginTransaction(): Promise; /** * Health check with connection pool stats */ healthCheck(): Promise; /** * Get Supabase client for real-time features */ getSupabaseClient(): SupabaseClient | null; /** * Set RLS context for current operation */ setRLSContext(userId: string, userRole: string, tenantId?: string): void; /** * Clear RLS context */ clearRLSContext(): void; /** * Get current connection pool statistics */ getPoolStats(): { total: number; idle: number; waiting: number; } | null; /** * Map PostgreSQL data type OID to name */ private getDataTypeName; }