import { EventEmitter, Provider } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DatePickerInnerComponent } from './datepicker-inner.component';
import { DatepickerConfig } from './datepicker.config';
import * as ɵngcc0 from '@angular/core';
export declare const DATEPICKER_CONTROL_VALUE_ACCESSOR: Provider;
export declare class DatePickerComponent implements ControlValueAccessor {
    /** sets datepicker mode, supports: `day`, `month`, `year` */
    datepickerMode: string;
    /** default date to show if `ng-model` value is not specified */
    initDate?: Date;
    /**  oldest selectable date */
    minDate?: Date;
    /** latest selectable date */
    maxDate?: Date;
    /** set lower datepicker mode, supports: `day`, `month`, `year` */
    minMode?: string;
    /** sets upper datepicker mode, supports: `day`, `month`, `year` */
    maxMode?: string;
    /** if false week numbers will be hidden */
    showWeeks: boolean;
    /** format of day in month */
    formatDay?: string;
    /** format of month in year */
    formatMonth?: string;
    /** format of year in year range */
    formatYear?: string;
    /** format of day in week header */
    formatDayHeader?: string;
    /** format of title when selecting day */
    formatDayTitle?: string;
    /** format of title when selecting month */
    formatMonthTitle?: string;
    /** starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) */
    startingDay?: number;
    /** number of years displayed in year selection */
    yearRange?: number;
    /** if true only dates from the currently displayed month will be shown */
    onlyCurrentMonth?: boolean;
    /** if true shortcut`s event propagation will be disabled */
    shortcutPropagation?: boolean;
    /** number of months displayed in a single row of month picker */
    monthColLimit: number;
    /** number of years displayed in a single row of year picker */
    yearColLimit: number;
    /** array of custom css classes to be applied to targeted dates */
    customClass?: {
        date: Date;
        mode: string;
        clazz: string;
    }[];
    /** array of disabled dates */
    dateDisabled?: {
        date: Date;
        mode: string;
    }[];
    /** disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday) */
    dayDisabled?: number[];
    /** currently active date */
    get activeDate(): Date | undefined;
    set activeDate(value: Date | undefined);
    selectionDone: EventEmitter<Date>;
    /** callback to invoke when the activeDate is changed. */
    activeDateChange: EventEmitter<Date>;
    _datePicker?: DatePickerInnerComponent;
    onChange: any;
    onTouched: any;
    config: DatepickerConfig;
    protected _now: Date;
    protected _activeDate?: Date;
    constructor(config: DatepickerConfig);
    configureOptions(): void;
    onUpdate(event: Date): void;
    onSelectionDone(event: Date): void;
    onActiveDateChange(event: Date): void;
    writeValue(value: any): void;
    registerOnChange(fn: () => void): void;
    registerOnTouched(fn: () => void): void;
    static ɵfac: ɵngcc0.ɵɵFactoryDef<DatePickerComponent, never>;
    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<DatePickerComponent, "datepicker", never, { "datepickerMode": "datepickerMode"; "showWeeks": "showWeeks"; "monthColLimit": "monthColLimit"; "yearColLimit": "yearColLimit"; "activeDate": "activeDate"; "initDate": "initDate"; "minDate": "minDate"; "maxDate": "maxDate"; "minMode": "minMode"; "maxMode": "maxMode"; "formatDay": "formatDay"; "formatMonth": "formatMonth"; "formatYear": "formatYear"; "formatDayHeader": "formatDayHeader"; "formatDayTitle": "formatDayTitle"; "formatMonthTitle": "formatMonthTitle"; "startingDay": "startingDay"; "yearRange": "yearRange"; "onlyCurrentMonth": "onlyCurrentMonth"; "shortcutPropagation": "shortcutPropagation"; "customClass": "customClass"; "dateDisabled": "dateDisabled"; "dayDisabled": "dayDisabled"; }, { "selectionDone": "selectionDone"; "activeDateChange": "activeDateChange"; }, never, never>;
}

//# sourceMappingURL=datepicker.component.d.ts.map