import { EventEmitter, ChangeDetectorRef, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, Validator, ValidationErrors, AbstractControl } from '@angular/forms';
import { NgbCalendar } from '@ng-bootstrap/ng-bootstrap';
import { NcDateParserFormatter } from '../datepicker-parser-formatter';
import { NcDateAdapter } from '../adapters/date-struct.adapter';
import * as i0 from "@angular/core";
export declare class NcDatepickerInputComponent<T = string> implements ControlValueAccessor, Validator, OnChanges {
    private elRef;
    private cdRef;
    private calendar;
    private adapter;
    private parserFormatter;
    /** @ignore */
    private _onChange;
    /** @ignore */
    private _onTouched;
    /** @ignore */
    private _onValidatorChange;
    /** @ignore */
    private _value;
    /** @ignore */
    private _valueNative;
    /** @ignore */
    isOpen: boolean;
    /** @ignore */
    inputValue: string;
    showWeekNumbers: boolean;
    firstDayOfWeek: number;
    minDate: T;
    maxDate: T;
    placeholder: string;
    inputId: string;
    disabled: boolean;
    startDate: T;
    set value(value: T);
    /** @ignore */
    get value(): T;
    ariaLabel: string;
    ariaLabelledby: string;
    dateChanged: EventEmitter<T>;
    dateInput: EventEmitter<T>;
    touched: EventEmitter<any>;
    constructor(elRef: ElementRef, cdRef: ChangeDetectorRef, calendar: NgbCalendar, adapter: NcDateAdapter<T>, parserFormatter: NcDateParserFormatter);
    /** @ignore */
    ngOnChanges(changes: SimpleChanges): void;
    toggle(): void;
    open(): void;
    close(): void;
    /** @ignore */
    onManualDateChange(value: string, updateView?: boolean): void;
    /** @ignore */
    onDateSelect(date: T): void;
    /** @ignore */
    onTouched(): void;
    setToday(): void;
    focusInput(): void;
    /** @ignore */
    writeValue(value: T): void;
    /** @ignore */
    registerOnChange(fn: any): void;
    /** @ignore */
    registerOnTouched(fn: any): void;
    /** @ignore */
    setDisabledState(isDisabled: boolean): void;
    /** @ignore */
    validate(control: AbstractControl): ValidationErrors;
    /** @ignore */
    registerOnValidatorChange(fn: () => void): void;
    /** @ignore */
    private updateViewValue;
    /** @ignore */
    private dateBefore;
    /** @ignore */
    private dateAfter;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcDatepickerInputComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NcDatepickerInputComponent<any>, "nc-datepicker-input", never, { "showWeekNumbers": "showWeekNumbers"; "firstDayOfWeek": "firstDayOfWeek"; "minDate": "minDate"; "maxDate": "maxDate"; "placeholder": "placeholder"; "inputId": "inputId"; "disabled": "disabled"; "startDate": "startDate"; "value": "value"; "ariaLabel": "aria-label"; "ariaLabelledby": "aria-labelledby"; }, { "dateChanged": "dateChanged"; "dateInput": "dateInput"; "touched": "touched"; }, never, never>;
}
