import { I18N } from 'aurelia-i18n';
import { EventAggregator } from 'aurelia-event-aggregator';
import { BindingEngine, TaskQueue } from "aurelia-framework";
import { CALENDAR_VIEWS, IDateConfig, IDateDisabled, IDatePreset, IHeaderConfig } from "./calendar-utils";
import { DateUtils } from '../../utils/date-utils';
import { Config } from '../../config';
import { BaseInput } from './../forms/base-input';
export declare class UIDatePicker extends BaseInput {
    private i18n;
    private eventAggregator;
    private dateUtils;
    private bindingEngine;
    private taskQueue;
    private config;
    private inputElement;
    private dropDate;
    private dropTime;
    date: Date | undefined;
    dateLabel: string | undefined;
    minDate: string | undefined;
    maxDate: string | undefined;
    disabledDates: IDateDisabled;
    format: string;
    dateOnly: boolean;
    displayWeek: boolean;
    private attachToViewport;
    private closeOnSelect;
    private yearOnly;
    private monthOnly;
    onChange: (args: {
        date?: Date;
    }) => void;
    presets: IDatePreset[];
    selectedPreset: IDatePreset;
    private autosetWhenOpened;
    private initDateWhenOpened;
    placeholder: string;
    timeOnly: boolean;
    startHour: number;
    endHour: number;
    hourInterval: number;
    startMinute: number;
    endMinute: number;
    minuteInterval: number;
    private translations;
    protected currentPage: CALENDAR_VIEWS;
    protected month: Date;
    protected VIEWS: typeof CALENDAR_VIEWS;
    protected selecting: Date;
    private selectedDate;
    private inputFormat;
    private changeLanguageSubscription;
    private disposables;
    constructor(element: Element, i18n: I18N, eventAggregator: EventAggregator, dateUtils: DateUtils, bindingEngine: BindingEngine, taskQueue: TaskQueue, config: Config);
    protected bind(): void;
    protected unbind(): void;
    private initFormat;
    private clearSelectionListener;
    private changeListener;
    protected attached(): void;
    protected detached(): void;
    protected dateChanged(newVal: Date, oldVal: Date): void;
    get dateConfig(): IDateConfig;
    get title(): string;
    get headerOptions(): IHeaderConfig;
    get disabledDatesList(): string[] | (({ date }: {
        date: Date;
    }) => boolean);
    protected headerClicked($event: MouseEvent): void;
    protected selectDate($event: MouseEvent): void;
    protected selectMonth($event: MouseEvent): void;
    protected cancelSelection(): void;
    protected clearSelection(): void;
    protected selectPreset(preset: IDatePreset, cancelSelection?: boolean): void;
    private updateDate;
    protected toggleUIDrop(isDate: boolean): void;
    toggleDateDrop(): void;
    toggleTimeDrop(): void;
    private changeLanguage;
}
