import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup } from '@angular/forms';
import { FieldContext, UxDynFormModelArray } from './ux-dyn-core.model';
export declare type UxDynValidationMetaData = string | UxDynValidationMetaDataObject;
export declare class UxDynValidationMetaDataObject {
    valFnId: string;
    params?: Array<any>;
    severity?: string;
    constructor(values: any);
}
export interface UxDynValidators {
    validatorFn?: Array<UxDynValidationMetaData | ValidatorFn>;
    asyncValidatorFn?: Array<UxDynValidationMetaData | ValidatorFn>;
}
export declare class UxDynValidationErrorsClass {
    uxValidationError: UxDynValidationError;
    constructor(uxValidationError: UxDynValidationError);
}
export interface UxDynValidationError {
    message: string;
    type: string;
    name?: string;
}
export interface UxDynValidationFieldInfo {
    fieldContext: FieldContext;
    children?: UxDynFormModelArray;
}
export declare function uxDynValidator(fn: ValidatorFn | any, message: (arg?: any) => string, severity: string, fieldInfo?: UxDynValidationFieldInfo): (c: AbstractControl) => null | ValidationErrors;
export declare function isNull(val: any): any;
export declare function groupRequired(control: AbstractControl): ValidationErrors;
export declare function advRequired(control: AbstractControl): ValidationErrors;
export declare function groupLevelRequired(control: FormGroup): {
    [key: string]: any;
} | null;
