import { ElementRef, Renderer2 } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
export declare const DATE_VALUE_ACCESSOR: any;
/**
 * The accessor for writing a value and listening to changes on a date input element
 *
 *  ### Example
 *  `<input type="date" name="birthday" ngModel dateInput>`
 *  OR
 *  `<input type="date" formControlName="birthday" dateInput>`
 */
export declare class DateValueAccessor implements ControlValueAccessor {
    private renderer;
    private elementRef;
    onChange: (_: any) => void;
    onTouched: () => void;
    constructor(renderer: Renderer2, elementRef: ElementRef);
    /** Writes a new value to the element (model -> view) */
    writeValue(value: Date): void;
    /** Registers a callback function, called when value changes (view -> model) */
    registerOnChange(fn: (_: any) => void): void;
    /** Registers a callback function, called when the control is blurred */
    registerOnTouched(fn: () => void): void;
    /** Enables or disables the element when the control status changes */
    setDisabledState(isDisabled: boolean): void;
}
