import type { DataDomain } from '../DataDomain.js';
import type { DomainValidation } from './rules.js';
/**
 * SemanticValidation is a class that performs validation on semantics in a data domain.
 * It checks for required and recommended semantics in entities, properties, and associations.
 */
export declare class SemanticValidation {
    protected domain: DataDomain;
    constructor(domain: DataDomain);
    /**
     * Performs all the semantic validation rules on the domain.
     * @returns The list of validation messages.
     */
    validate(): DomainValidation[];
    /**
     * Validates if there is at least one entity with the User semantic.
     * This is a recommended semantic for authentication purposes.
     */
    private validateUserEntity;
    /**
     * Validates if entities have the recommended timestamp semantics.
     * This includes CreatedTimestamp and UpdatedTimestamp.
     */
    private validateTimestampSemantics;
    /**
     * Validates if entities have the recommended soft delete semantics.
     * This includes either DeletedTimestamp or DeletedFlag.
     */
    private validateSoftDeleteSemantics;
    /**
     * Validates if property semantics are applied to properties with compatible data types.
     */
    private validatePropertySemanticsDataTypes;
}
//# sourceMappingURL=semantic_validation.d.ts.map