import { ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
import { FormControl, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';
import { MessageService } from 'primeng/api';
import { ValidationMessagesLocalizationModel } from './von-primeng-validation.model';
import * as i0 from "@angular/core";
export declare class VonPrimengValidationDirective implements OnInit, Validator {
    protected element: ElementRef;
    protected renderer: Renderer2;
    protected messageService: MessageService;
    ngModel?: any;
    ngModelChange: EventEmitter<any>;
    name?: string;
    customName?: string;
    required?: boolean;
    requiredMessage?: string;
    equalTo?: any;
    equalIgnoreCase?: boolean;
    equalToMessage?: string;
    manualVal?: boolean;
    manualValMessage?: string;
    protected validator: ValidationErrors;
    protected message: string;
    protected messages: ValidationMessagesLocalizationModel;
    protected $label?: HTMLElement;
    constructor(element: ElementRef, renderer: Renderer2, messageService: MessageService);
    ngOnInit(): void;
    validate(formValue: FormControl): ValidationErrors;
    executeChangeEvent: (value: any) => void;
    executeValidationEvent: () => void;
    cleanValidationEvent: () => void;
    protected getClosestForm: (element: HTMLElement) => HTMLElement;
    protected getLabelText: () => string;
    protected runValidation: () => void;
    protected verifyClassName: (element: HTMLElement) => string;
    protected verifyValidationMessage: () => {
        message: string;
        valid: boolean;
    };
    protected getCustomValidators: (formValue: any) => ValidationErrors;
    protected validateRequired: ValidatorFn;
    protected validateEqualTo: ValidatorFn;
    protected validateManual: ValidatorFn;
    protected fieldNotValid: () => any;
    static ɵfac: i0.ɵɵFactoryDeclaration<VonPrimengValidationDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<VonPrimengValidationDirective, "[validation]", never, { "ngModel": { "alias": "ngModel"; "required": false; }; "name": { "alias": "name"; "required": false; }; "customName": { "alias": "customName"; "required": false; }; "required": { "alias": "required"; "required": false; }; "requiredMessage": { "alias": "requiredMessage"; "required": false; }; "equalTo": { "alias": "equalTo"; "required": false; }; "equalIgnoreCase": { "alias": "equalIgnoreCase"; "required": false; }; "equalToMessage": { "alias": "equalToMessage"; "required": false; }; "manualVal": { "alias": "manualVal"; "required": false; }; "manualValMessage": { "alias": "manualValMessage"; "required": false; }; }, { "ngModelChange": "ngModelChange"; }, never, never, false, never>;
}
