import { OnInit, OnChanges, SimpleChanges, ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { ISlimScrollOptions } from 'ngx-slimscroll';
export interface DatepickerOptions {
    minYear?: number;
    maxYear?: number;
    displayFormat?: string;
    barTitleFormat?: string;
    dayNamesFormat?: string;
    barTitleIfEmpty?: string;
    firstCalendarDay?: number;
    locale?: object;
    minDate?: Date;
    maxDate?: Date;
}
export declare class NgDatepickerComponent implements ControlValueAccessor, OnInit, OnChanges {
    private elementRef;
    options: DatepickerOptions;
    /**
     * Disable datepicker's input
     */
    headless: boolean;
    /**
     * Set datepicker's visibility state
     */
    isOpened: boolean;
    /**
     * Datepicker dropdown position
     */
    position: string;
    private positions;
    innerValue: Date;
    displayValue: string;
    displayFormat: string;
    date: Date;
    barTitle: string;
    barTitleFormat: string;
    barTitleIfEmpty: string;
    minYear: number;
    maxYear: number;
    firstCalendarDay: number;
    view: string;
    years: {
        year: number;
        isThisYear: boolean;
    }[];
    dayNames: string[];
    dayNamesFormat: string;
    scrollOptions: ISlimScrollOptions;
    days: {
        date: Date;
        day: number;
        month: number;
        year: number;
        inThisMonth: boolean;
        isToday: boolean;
        isSelected: boolean;
        isSelectable: boolean;
    }[];
    locale: object;
    private onTouchedCallback;
    private onChangeCallback;
    value: Date;
    constructor(elementRef: ElementRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    setOptions(): void;
    nextMonth(): void;
    prevMonth(): void;
    setDate(i: number): void;
    setYear(i: number): void;
    /**
     * Checks if specified date is in range of min and max dates
     * @param date
     */
    private isDateSelectable(date);
    init(): void;
    initYears(): void;
    initDayNames(): void;
    toggleView(): void;
    toggle(): void;
    close(): void;
    reset(): void;
    writeValue(val: Date): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    onBlur(e: MouseEvent): void;
}
