/**
 * Enhanced JsonMapping with TypeScript type information for automatic compatibility validation
 */
import { JsonMapping } from 'rawsql-ts';
/**
 * Type property definition for automatic type validation
 */
export interface TypePropertyInfo {
    type: 'string' | 'number' | 'boolean' | 'Date' | 'object' | 'array';
    required: boolean;
    arrayElementType?: string;
    objectInterface?: string;
}
/**
 * Type information for entities in JsonMapping
 */
export interface EntityTypeInfo {
    interface?: string;
    importPath?: string;
    properties?: {
        [propertyName: string]: TypePropertyInfo;
    };
}
/**
 * Enhanced JsonMapping with type information for automatic validation
 */
export interface EnhancedJsonMapping extends JsonMapping {
    typeInfo?: {
        interface: string;
        importPath: string;
    };
    rootEntity: JsonMapping['rootEntity'] & {
        typeInfo?: EntityTypeInfo;
    };
    nestedEntities: Array<JsonMapping['nestedEntities'][0] & {
        typeInfo?: EntityTypeInfo;
    }>;
}
/**
 * Type validation result
 */
export interface TypeValidationResult {
    isValid: boolean;
    errors: string[];
    missingProperties: string[];
    extraProperties: string[];
    typeConflicts: Array<{
        property: string;
        expected: string;
        actual: string;
    }>;
}
