/**
 * Pro Generator Context
 *
 * Centralized context for Pro features with DMMF access
 */
import { DMMF } from '@prisma/generator-helper';
import { GeneratorConfig } from '../../config/parser';
export interface ProGeneratorContext {
    /** Parsed DMMF from Prisma schema */
    dmmf: DMMF.Document;
    /** Datamodel models from DMMF */
    models: DMMF.Model[];
    /** Datamodel enums from DMMF */
    enums: DMMF.DatamodelEnum[];
    /** Generator configuration */
    generatorConfig: GeneratorConfig;
    /** Original schema file path */
    schemaPath: string;
    /** Output directory for generated files */
    outputPath: string;
    /** Prisma client import path */
    prismaClientPath: string;
    /** Provider type (postgresql, mysql, etc.) */
    provider: string;
    /** Preview features enabled */
    previewFeatures?: string[];
}
/**
 * Create a Pro Generator Context from core generator data
 */
export declare function createProGeneratorContext(dmmf: DMMF.Document, generatorConfig: GeneratorConfig, schemaPath: string, outputPath: string, prismaClientPath: string, provider: string, previewFeatures?: string[]): ProGeneratorContext;
/**
 * Pro Generator Context utilities
 */
export declare class ProContextUtils {
    private context;
    constructor(context: ProGeneratorContext);
    /**
     * Get all models or filter by name pattern
     */
    getModels(namePattern?: string | RegExp): DMMF.Model[];
    /**
     * Get model by exact name
     */
    getModelByName(name: string): DMMF.Model | undefined;
    /**
     * Get all enums or filter by name pattern
     */
    getEnums(namePattern?: string | RegExp): DMMF.DatamodelEnum[];
    /**
     * Get enum by exact name
     */
    getEnumByName(name: string): DMMF.DatamodelEnum | undefined;
    /**
     * Check if provider supports specific features
     */
    supportsFeature(feature: 'json' | 'fulltext' | 'views' | 'multiSchema'): boolean;
    /**
     * Get provider-specific type mappings
     */
    getProviderTypeMapping(): Record<string, string>;
}
