/**
 * @fileoverview A Supabase-based storage provider.
 * Persists data to a specified table in a Supabase PostgreSQL database.
 * Assumes a table with columns: `key` (text), `value` (jsonb), and `expires_at` (timestamptz).
 * @module src/storage/providers/supabase/supabaseProvider
 */
import type { SupabaseClient } from '@supabase/supabase-js';
import type { IStorageProvider, ListOptions, ListResult, StorageOptions } from '../../../storage/core/IStorageProvider.js';
import type { Database } from '../../../storage/providers/supabase/supabase.types.js';
import type { RequestContext } from '../../../utils/internal/requestContext.js';
export declare class SupabaseProvider implements IStorageProvider {
    private readonly client;
    constructor(client: SupabaseClient<Database>);
    private getClient;
    get<T>(tenantId: string, key: string, context: RequestContext): Promise<T | null>;
    set(tenantId: string, key: string, value: unknown, context: RequestContext, options?: StorageOptions): Promise<void>;
    delete(tenantId: string, key: string, context: RequestContext): Promise<boolean>;
    list(tenantId: string, prefix: string, context: RequestContext, options?: ListOptions): Promise<ListResult>;
    getMany<T>(tenantId: string, keys: string[], context: RequestContext): Promise<Map<string, T>>;
    setMany(tenantId: string, entries: Map<string, unknown>, context: RequestContext, options?: StorageOptions): Promise<void>;
    deleteMany(tenantId: string, keys: string[], context: RequestContext): Promise<number>;
    clear(tenantId: string, context: RequestContext): Promise<number>;
}
//# sourceMappingURL=supabaseProvider.d.ts.map