import { OnChanges, DoCheck, SimpleChanges, ElementRef } from '@angular/core';
import { Validator, AbstractControl, ValidationErrors } from '@angular/forms';
import { FileTypeRestriction } from './file-type-restrictions.interface';
export declare class Ng2FileTypeDirective implements Validator, OnChanges, DoCheck {
    /**
     * @type {FileTypeRestriction}
     * @public
     */
    ng2FileType: FileTypeRestriction;
    /**
     * @type {string}
     * @public
     */
    fileTypeErrorMsg: string;
    /**
     * @return {boolean}
     */
    /**
     * @type {boolean}
     * @private
     */
    multiple: any;
    /**
     * @type {boolean}
     * @private
     */
    private _multiple;
    /**
     * @type {ElementRef}
     * @private
     */
    private _element;
    /**
     * @type {AbstractControl}
     * @private
     */
    private _control;
    /**
     *
     * @type {FileTypeRestriction}
     * @private
     */
    private _oldValue;
    /**
     *
     * @param {ElementRef} element
     * @return {void}
     * @public
     */
    constructor(element: ElementRef);
    /**
     *
     * @return {void}
     * @param {SimpleChanges} changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     *
     * @public
     * @returns {void}
     */
    ngDoCheck(): void;
    /**
     *
     * @param {FormControl} control
     * @return {ValidationErrors}
     * @private
     */
    validate(control: AbstractControl): ValidationErrors;
    /**
     *
     * @param {EventTarget} eventTarget
     * @return {void}
     */
    onChange(eventTarget: EventTarget): void;
    /**
     *
     * @param value
     * @private
     */
    private _setValidity(value);
    /**
     *
     * @param {File|FileList|undefined} value
     * @return {boolean}
     * @private
     */
    private _hasError(value);
    /**
     *
     * @param {File|FileList} value
     * @return {boolean}
     * @private
     */
    private _hasValidType(value);
    /**
     *
     * @param value
     * @returns {boolean}
     * @private
     */
    private _validateType(value);
    /**
     *
     * @param {FileInputEventTarget} eventTarget
     * @return {File|FileList|undefined}
     * @private
     */
    private _getInputValue(eventTarget);
}
