import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';
import { Subject } from 'rxjs';
import { CalendarService } from '../../services/calendar.service';
import { DateFormat, ISelectedDate } from '../../model/calendar.model';
import { CalendarErrorStateMatcher } from '../../validators/calendar-error-state-matcher';
import { MatSnackBar } from '@angular/material/snack-bar';
export declare class DateComponent implements OnInit, ControlValueAccessor, OnDestroy {
    private dpService;
    private snackbar;
    controlDir: NgControl;
    private calPopUp;
    private menuTrigger;
    dateInput: ElementRef;
    elTooltip: any;
    onDateChanged: EventEmitter<any>;
    matcher: CalendarErrorStateMatcher;
    dateFormat: DateFormat;
    datemask: (string | RegExp)[];
    stateChanges: Subject<void>;
    formControl: FormControl;
    changeDateTooltip: string;
    showCalendarTooltip: string;
    clearTooltip: string;
    errorMessage: string;
    caption: any;
    isPickerVisible: boolean;
    dateObject: ISelectedDate[];
    tooltipText: any;
    private _withTime;
    private _placeholder;
    private _readonly;
    private _closeOnClick;
    private _isRange;
    private _language;
    private _required;
    private lastChanged;
    private lastEmitted;
    private manualChanged;
    private _param;
    set param(val: any);
    get param(): any;
    set required(val: any);
    get required(): any;
    private pushTimeMask;
    private changeDateFormat;
    set withTime(val: boolean);
    get withTime(): boolean;
    set placeholder(val: any);
    get placeholder(): any;
    set readonly(val: boolean);
    get readonly(): boolean;
    set closeOnClick(val: boolean);
    get closeOnClick(): boolean;
    set disabled(val: boolean);
    get disabled(): boolean;
    set isRange(val: boolean);
    get isRange(): boolean;
    set language(val: number);
    get language(): number;
    registerOnChange(fn: any): void;
    private propagateChange;
    writeValue(value: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    onTouched: () => void;
    setDateValueByDate(value: any): void;
    private setDateValueByString;
    private setDateObject;
    onManualChange(event: any): void;
    private emitChange;
    private execPropagateChange;
    constructor(dpService: CalendarService, snackbar: MatSnackBar, controlDir: NgControl);
    ngOnInit(): void;
    ngOnDestroy(): void;
    clearText(): void;
    private setValue;
    changeDateType(): void;
    showPicker(): void;
    onBlur: (event: any) => void;
    setTooltip(): void;
    dateChangedFromPopUp(result: any): void;
    onMenuClosed(): void;
}
