/**
 * Extended generator options for Prisma Zod Generator
 *
 * This module provides parsing and validation for both existing and new
 * generator options while maintaining backward compatibility.
 */
/**
 * Extended generator configuration options
 */
export interface ExtendedGeneratorOptions {
    config?: string;
    minimal?: boolean;
    variants?: string[];
    useMultipleFiles?: boolean;
    singleFileName?: string;
    placeSingleFileAtRoot?: boolean;
    pureModelsLean?: boolean;
    pureModelsIncludeRelations?: boolean;
    pureModelsExcludeCircularRelations?: boolean;
    dateTimeStrategy?: 'date' | 'coerce' | 'isoString';
    dateTimeSplitStrategy?: boolean;
    jsonSchemaCompatible?: boolean;
    jsonSchemaOptions?: {
        dateTimeFormat?: 'isoString' | 'isoDate';
        bigIntFormat?: 'string' | 'number';
        bytesFormat?: 'base64String' | 'hexString';
        conversionOptions?: {
            unrepresentable?: 'throw' | 'any';
            cycles?: 'ref' | 'throw';
            reused?: 'inline' | 'ref';
        };
    };
    optionalFieldBehavior?: 'optional' | 'nullable' | 'nullish';
    isGenerateSelect?: boolean;
    isGenerateInclude?: boolean;
    raw: Record<string, string>;
}
/**
 * Parse and validate generator options from Prisma config
 */
export declare function parseGeneratorOptions(generatorConfig?: Record<string, string>): ExtendedGeneratorOptions;
/**
 * Validate generator options compatibility
 */
export declare function validateGeneratorOptions(options: ExtendedGeneratorOptions): void;
/**
 * Create default generator options
 */
export declare function createDefaultGeneratorOptions(): ExtendedGeneratorOptions;
/**
 * Merge generator options with defaults
 */
export declare function mergeGeneratorOptions(options: Partial<ExtendedGeneratorOptions>, defaults?: ExtendedGeneratorOptions): ExtendedGeneratorOptions;
/**
 * Convert generator options to configuration overrides
 *
 * This creates a partial configuration that can be merged with
 * the loaded configuration file to implement option precedence.
 */
export declare function generatorOptionsToConfigOverrides(options: ExtendedGeneratorOptions): GeneratorConfigOverrides;
/**
 * Generator configuration overrides from options
 */
export interface GeneratorConfigOverrides {
    mode?: 'full' | 'minimal' | 'custom';
    output?: string;
    isGenerateSelect?: boolean;
    isGenerateInclude?: boolean;
    useMultipleFiles?: boolean;
    singleFileName?: string;
    placeSingleFileAtRoot?: boolean;
    pureModelsLean?: boolean;
    pureModelsIncludeRelations?: boolean;
    pureModelsExcludeCircularRelations?: boolean;
    dateTimeStrategy?: 'date' | 'coerce' | 'isoString';
    dateTimeSplitStrategy?: boolean;
    jsonSchemaCompatible?: boolean;
    jsonSchemaOptions?: {
        dateTimeFormat?: 'isoString' | 'isoDate';
        bigIntFormat?: 'string' | 'number';
        bytesFormat?: 'base64String' | 'hexString';
    };
    optionalFieldBehavior?: 'optional' | 'nullable' | 'nullish';
    variants?: {
        pure?: {
            enabled?: boolean;
        };
        input?: {
            enabled?: boolean;
        };
        result?: {
            enabled?: boolean;
        };
    };
}
/**
 * Generator option parsing error
 */
export declare class GeneratorOptionError extends Error {
    readonly optionName: string;
    readonly optionValue: unknown;
    constructor(optionName: string, optionValue: unknown, message: string);
    getUserFriendlyMessage(): string;
}
/**
 * Format generator options for display/debugging
 */
export declare function formatGeneratorOptions(options: ExtendedGeneratorOptions): string;
/**
 * Check if generator options indicate legacy usage
 */
export declare function isLegacyUsage(options: ExtendedGeneratorOptions): boolean;
/**
 * Get migration suggestions for legacy usage
 */
export declare function getLegacyMigrationSuggestions(options: ExtendedGeneratorOptions): string[];
/**
 * Check if there are conflicting options between generator options and expected config file
 */
export declare function detectOptionConflicts(generatorOptions: ExtendedGeneratorOptions, configFileHasOptions: boolean): string[];
/**
 * Get effective configuration summary showing which options are active and their source
 */
export declare function getEffectiveConfigurationSummary(generatorOptions: ExtendedGeneratorOptions, hasConfigFile: boolean): string;
