/**
 * Schema Validator
 *
 * Comprehensive schema validation utilities for validating schema definitions,
 * field types, relationships, and constraints before creating collections.
 */
import type { ValidationResult, FieldValidation, SchemaValidation } from '../types/index.js';
export type { ValidationResult, FieldValidation, SchemaValidation };
/**
 * Schema validator utilities
 */
declare const schemaValidator: {
    /**
     * Validate a complete schema definition before creation
     * @param collectionName - Name of the collection
     * @param schemaDefinition - Schema definition object
     * @returns Validation result
     *
     * @example
     * ```typescript
     * const validation = schemaValidator.validateSchemaBeforeCreate('users', {
     *   fields: {
     *     id: { type: 'integer', primaryKey: true },
     *     email: { type: 'string', unique: true, required: true }
     *   }
     * });
     * if (!validation.valid) {
     *   console.error('Validation errors:', validation.errors);
     * }
     * ```
     */
    validateSchemaBeforeCreate(collectionName: string, schemaDefinition: any): SchemaValidation;
    /**
     * Validate collection name
     * @param name - Collection name
     * @returns Validation result
     */
    validateCollectionName(name: string): ValidationResult;
    /**
     * Validate a single field definition
     * @param fieldName - Field name
     * @param fieldDef - Field definition
     * @param collectionName - Collection name (for context)
     * @returns Field validation result
     */
    validateField(fieldName: string, fieldDef: any, collectionName?: string): FieldValidation;
    /**
     * Validate field type
     * @param type - Field type
     * @returns Validation result
     */
    validateFieldType(type: any): ValidationResult;
    /**
     * Validate default value matches field type
     * @param defaultValue - Default value
     * @param fieldType - Field type
     * @returns Validation result
     */
    validateDefaultValue(defaultValue: any, fieldType: string): ValidationResult;
    /**
     * Validate relationships/associations
     * @param collectionName - Collection name
     * @param associations - Associations object
     * @returns Validation result
     */
    validateRelationships(collectionName: string, associations: any): ValidationResult;
    /**
     * Validate indexes
     * @param fields - Schema fields
     * @param indexes - Index definitions
     * @returns Validation result
     */
    validateIndexes(fields: any, indexes: any[]): ValidationResult;
    /**
     * Validate a schema update (modifying existing schema)
     * @param collectionName - Collection name
     * @param updates - Schema updates
     * @returns Validation result
     */
    validateSchemaUpdate(collectionName: string, updates: any): ValidationResult;
};
export default schemaValidator;
//# sourceMappingURL=schemaValidator.d.ts.map