/**
 * RLS-Compliant Seeder
 * Implements user context-aware seeding that respects Row Level Security policies
 */
import type { createClient } from '@supabase/supabase-js';
import { BusinessLogicAnalysisResult, RLSComplianceOptions, UserContext, RLSComplianceResult } from '../features/analysis/business-logic-types';
type SupabaseClient = ReturnType<typeof createClient>;
export declare class RLSCompliantSeeder {
    private client;
    private serviceRoleClient?;
    private businessLogicAnalyzer;
    private options;
    private cachedPolicies;
    private currentUserContext?;
    constructor(client: SupabaseClient, serviceRoleClient?: SupabaseClient, options?: Partial<RLSComplianceOptions>);
    /**
     * Seed data with RLS compliance
     */
    seedWithRLSCompliance(table: string, data: any[], userContext?: UserContext): Promise<RLSComplianceResult>;
    /**
     * Create user context for seeding
     */
    private createUserContext;
    /**
     * Get RLS policies for a specific table
     */
    private getRLSPoliciesForTable;
    /**
     * Validate data against RLS policies
     */
    private validateDataAgainstRLS;
    /**
     * Check policy conditions against data
     */
    private checkPolicyConditions;
    /**
     * Generate fix suggestions for RLS violations
     */
    private generateFixSuggestions;
    /**
     * Handle RLS violations with fixes or bypass
     */
    private handleRLSViolations;
    /**
     * Apply data fixes based on suggestions
     */
    private applyDataFixes;
    /**
     * Seed with user context
     */
    private seedWithUserContext;
    /**
     * Seed directly without RLS compliance
     */
    private seedDirectly;
    /**
     * Seed with RLS bypass using service role
     */
    private seedWithBypass;
    /**
     * Validate inserted data
     */
    private validateInsertedData;
    /**
     * Check if table has RLS enabled
     */
    isRLSEnabled(table: string): Promise<boolean>;
    /**
     * Get RLS compliance recommendations
     */
    getComplianceRecommendations(analysisResult: BusinessLogicAnalysisResult): string[];
    /**
     * Clear temporary user context
     */
    clearUserContext(): Promise<void>;
}
export {};
//# sourceMappingURL=rls-compliant-seeder.d.ts.map