import { AttributeDefinition } from './definitions';
import { IOperationOutcomeIssue } from 'fhirtypes/dist/r4';
/**
 * @description Validates a model based on the model definition
 * @param options - the options to validate the model
 * @param options.dataToValidate - the model to validate
 * @param options.path - the path to the model
 * @param options.modelDefinition - the model definition
 * @param options.errors - the errors array
 * @param options.additionalValidation - additional validation functions
 * @returns {void}
 */
export declare const ModelValidator: <T extends object>(options: {
    dataToValidate: T;
    path: string;
    modelDefinition: readonly AttributeDefinition<T>[];
    errors: IOperationOutcomeIssue[];
    additionalValidation?: ((data: T, path: string, errors: IOperationOutcomeIssue[]) => void)[];
}) => void;
