import { EventAggregator } from 'aurelia-event-aggregator';
import { BindingEngine } from "aurelia-framework";
import { CALENDAR_VIEWS, IRangePreset, IHeaderConfig } from "./calendar-utils";
import { I18N } from 'aurelia-i18n';
import { DateUtils } from '../../utils/date-utils';
import { Config } from '../../config';
import { BaseInput } from './../forms/base-input';
export declare enum UIRangePickerSelectionMode {
    Day = "day",
    Week = "week",
    Month = "month",
    MonthToMonth = "monthToMonth"
}
export declare class UIRangePicker extends BaseInput {
    private i18n;
    private eventAggregator;
    private dateUtils;
    private bindingEngine;
    private config;
    private inputElement;
    private dropRange;
    dateFrom: Date | undefined;
    dateTo: Date | undefined;
    dateLabel: string | undefined;
    selection: UIRangePickerSelectionMode;
    minDate: string | undefined;
    maxDate: string | undefined;
    format: string;
    displayWeek: boolean;
    private useOnAgGrid;
    private attachToViewport;
    presets: IRangePreset[];
    selectedPreset: IRangePreset;
    private autosetWhenOpened;
    placeholder: string;
    private translations;
    protected month: Date;
    protected currentPage: CALENDAR_VIEWS;
    protected VIEWS: typeof CALENDAR_VIEWS;
    protected hilight: Date;
    protected selecting: Date;
    private selectedDate;
    protected weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
    private changeLanguageSubscription;
    private disposables;
    constructor(element: Element, i18n: I18N, eventAggregator: EventAggregator, dateUtils: DateUtils, bindingEngine: BindingEngine, config: Config);
    protected bind(): void;
    private selectDateFromPreset;
    protected unbind(): void;
    private changeListener;
    protected attached(): void;
    protected detached(): void;
    protected dateChanged(): void;
    protected dateFromChanged(computeLabel?: boolean): void;
    protected dateToChanged(computeLabel?: boolean): void;
    computeLabel(): void;
    get rangeConfig(): {
        date: [Date, Date];
        page: CALENDAR_VIEWS;
        minDate: Date;
        maxDate: Date;
        disabled: any[];
    };
    get title(): string;
    get headerOptions(): IHeaderConfig;
    protected headerClicked($event: MouseEvent): void;
    protected selectDate($event: MouseEvent): void;
    protected selectMonth($event: MouseEvent): void;
    private internalSelectDate;
    protected cancelSelection(): void;
    protected clearSelection(): void;
    protected highlightDate($event: MouseEvent): void;
    protected highlightMonth($event: MouseEvent): void;
    protected selectPreset(preset: IRangePreset, cancelSelection?: boolean): void;
    protected toggleUIDrop(): void;
    private changeLanguage;
    private updateDate;
}
