import { JSONSchema7 } from 'json-schema';
/**
 * Comprehensive JSON Schema for Prisma Zod Generator configuration
 *
 * This schema defines strict validation rules for all configuration options
 * including data types, constraints, and allowed values.
 */
export declare const ConfigurationSchema: JSONSchema7;
/**
 * Schema for validating individual field names
 */
export declare const FieldNameSchema: JSONSchema7;
/**
 * Schema for validating model names (PascalCase)
 */
export declare const ModelNameSchema: JSONSchema7;
/**
 * Schema for validating output directory paths
 */
export declare const OutputPathSchema: JSONSchema7;
/**
 * Schema for validating file suffixes
 */
export declare const SuffixSchema: JSONSchema7;
/**
 * Available Prisma operations that can be configured
 */
export declare const PRISMA_OPERATIONS: readonly ["findMany", "findUnique", "findUniqueOrThrow", "findFirst", "findFirstOrThrow", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "aggregate", "groupBy", "count"];
/**
 * Available generation modes
 */
export declare const GENERATION_MODES: readonly ["full", "minimal", "custom"];
/**
 * Available schema variants
 */
export declare const SCHEMA_VARIANTS: readonly ["pure", "input", "result"];
/**
 * Default configuration values
 */
export declare const DEFAULT_CONFIG: {
    readonly mode: "full";
    readonly output: "./generated";
    readonly globalExclusions: {};
    readonly variants: {
        readonly pure: {
            readonly enabled: true;
            readonly suffix: ".model";
        };
        readonly input: {
            readonly enabled: true;
            readonly suffix: ".input";
        };
        readonly result: {
            readonly enabled: true;
            readonly suffix: ".result";
        };
    };
    readonly models: {};
};
/**
 * Minimal mode operation set
 */
export declare const MINIMAL_OPERATIONS: readonly ["findMany", "findUnique", "findFirst", "create", "update", "delete"];
/**
 * Configuration validation error types
 */
export declare enum ValidationErrorType {
    INVALID_JSON_SCHEMA = "INVALID_JSON_SCHEMA",
    INVALID_FIELD_NAME = "INVALID_FIELD_NAME",
    INVALID_MODEL_NAME = "INVALID_MODEL_NAME",
    INVALID_OPERATION = "INVALID_OPERATION",
    INVALID_MODE = "INVALID_MODE",
    INVALID_VARIANT = "INVALID_VARIANT",
    DUPLICATE_VALUES = "DUPLICATE_VALUES",
    MISSING_REQUIRED = "MISSING_REQUIRED"
}
/**
 * Configuration validation error details
 */
export interface ValidationError {
    type: ValidationErrorType;
    message: string;
    path: string;
    value?: unknown;
    allowedValues?: unknown[];
}
/**
 * Utility function to validate field names
 */
export declare function isValidFieldName(fieldName: string): boolean;
/**
 * Utility function to validate model names (PascalCase)
 */
export declare function isValidModelName(modelName: string): boolean;
/**
 * Utility function to validate Prisma operations
 */
export declare function isValidOperation(operation: string): boolean;
/**
 * Utility function to validate generation modes
 */
export declare function isValidMode(mode: string): boolean;
/**
 * Utility function to validate schema variants
 */
export declare function isValidVariant(variant: string): boolean;
/**
 * Utility function to validate file suffixes
 */
export declare function isValidSuffix(suffix: string): boolean;
/**
 * Get schema reference for a specific configuration section
 */
export declare function getSchemaSection(section: 'variantConfig' | 'modelConfig'): JSONSchema7;
/**
 * Create a custom schema for validating specific parts of the configuration
 */
export declare function createPartialSchema(properties: string[]): JSONSchema7;
