/**
 * Framework-Aware Adapter
 * Bridges the existing schema-adapter with the new framework strategy system
 */
import type { createClient } from '@supabase/supabase-js';
import { SchemaInfo } from '../../core/schema-adapter';
import { StrategySelection } from './strategy-registry';
import { SeedingStrategy, UserData, SeedingResult } from './strategy-interface';
type SupabaseClient = ReturnType<typeof createClient>;
export interface FrameworkAdapterOptions {
    enableSchemaCache?: boolean;
    frameworkOverride?: string;
    enableConstraintHandling?: boolean;
    debug?: boolean;
}
export declare class FrameworkAdapter {
    private client;
    private schemaAdapter;
    private strategyRegistry;
    private currentStrategy?;
    private currentSelection?;
    private options;
    constructor(client: SupabaseClient, config?: any, options?: FrameworkAdapterOptions);
    /**
     * Initialize the framework adapter
     */
    initialize(): Promise<void>;
    /**
     * Register all available strategies
     */
    private registerStrategies;
    /**
     * Detect schema and select appropriate strategy
     */
    private detectAndSelectStrategy;
    /**
     * Convert existing SchemaInfo to new DatabaseSchema format
     */
    private convertSchemaInfo;
    /**
     * Create a user using the selected strategy
     */
    createUser(userData: UserData): Promise<SeedingResult>;
    /**
     * Get the current strategy
     */
    getCurrentStrategy(): SeedingStrategy | undefined;
    /**
     * Get strategy selection details
     */
    getStrategySelection(): StrategySelection | undefined;
    /**
     * Get framework recommendations
     */
    getRecommendations(): string[];
    /**
     * Check if a specific feature is supported
     */
    supportsFeature(feature: string): boolean;
    /**
     * Get schema information (backward compatibility)
     */
    getSchemaInfo(): Promise<SchemaInfo>;
    /**
     * Get legacy user creation strategy (backward compatibility)
     */
    getUserCreationStrategy(): 'simple-accounts' | 'makerkit-profiles' | 'custom-profiles';
    /**
     * Validate the current strategy setup
     */
    validateStrategy(): Promise<{
        valid: boolean;
        issues: string[];
        recommendations: string[];
    }>;
    /**
     * Override the current strategy
     */
    overrideStrategy(strategyName: string): Promise<void>;
    /**
     * Get all available strategies
     */
    getAvailableStrategies(): string[];
    /**
     * Get detection results for all strategies
     */
    getAllDetectionResults(): Promise<Array<{
        strategy: string;
        detection: any;
    }>>;
    /**
     * Get the currently active strategy
     */
    getActiveStrategy(): SeedingStrategy | undefined;
}
export {};
//# sourceMappingURL=framework-adapter.d.ts.map