import { OnDestroy, StaticProvider } from '@angular/core';
import { FormControl } from '@angular/forms';
import { SmeInternalFormFieldComponent } from '../form-field/form-field.component';
import { ValidationAlerts } from '../validation-alert/validation-alert';
import { FormValidatorBase } from './base-validator';
import * as i0 from "@angular/core";
/**
 * Provider for the FormFieldValidatorDirective directive
 */
export declare const MATCH_FIELD_VALIDATOR: StaticProvider;
/**
 * A Directive that marks a field as invalid if it does not exactly match the value of another field
 */
export declare class MatchFieldValidatorDirective extends FormValidatorBase implements OnDestroy {
    /**
     * Indicates that field that this field should exactly match
     */
    get smeMatchField(): SmeInternalFormFieldComponent<any>;
    set smeMatchField(value: SmeInternalFormFieldComponent<any>);
    private matchFieldValueSubscription;
    /**
     * Internal placeholder for smeMatchField
     */
    private internalSmeMatchField;
    /**
     * Instantiates a new instance of MachineNameValidatorDirective
     */
    constructor();
    /**
     * Angular Destruction handler
     */
    ngOnDestroy(): void;
    /**
     * Implementation of Validator interface.
     * Validates the value of the field attached to this control matches the value of @see smeMatchField exactly
     * @param c The FormControl attached to this element
     * @return null when valid, otherwise returns a validation object
     */
    validate(c: FormControl): ValidationAlerts | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<MatchFieldValidatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MatchFieldValidatorDirective, "sme-form-field[smeMatchField][formControlName],sme-form-field[smeMatchField][formControl],sme-form-field[smeMatchField][ngModel]", never, { "smeMatchField": "smeMatchField"; }, {}, never, never, false, never>;
}
