/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';
import { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';
import { IDateRangePickerAdapter } from './date-range-picker-adapter';
import { IDatePickerRange } from './date-range-picker-constants';
export interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {
    from: Date | string | null | undefined;
    to: Date | string | null | undefined;
}
export declare class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {
    protected _mode: CalendarMode;
    private _from?;
    private _to?;
    private _toInputListener;
    private _toInputKeydownListener;
    private _toInputFocusListener;
    private _toInputBlurListener;
    private _toInputValueChangedListener;
    constructor(adapter: IDateRangePickerAdapter);
    initialize(): void;
    protected _initializeState(): void;
    protected _initializeListeners(): void;
    protected _initializeValueChangedListeners(): void;
    protected _setInputChangeListeners(): void;
    protected _removeInputChangeListeners(): void;
    protected _openCalendar(emitOpenEvent?: boolean): void;
    protected _emitChangeEvent(value: DateRange | null | undefined, force?: boolean): boolean;
    protected _emitOpenEvent(): void;
    protected _emitCloseEvent(): void;
    protected _onToday(): void;
    protected _onClear(): void;
    protected _getCurrentValue(): IDatePickerRange | null | undefined;
    private _applyToMask;
    private _formatToInputValue;
    protected _setFormattedInputValue(suppressValueChanges?: boolean): void;
    private _setFormattedToInputValue;
    protected _isDateRangeAcceptable(value?: DateRange | null | undefined): boolean;
    protected _setValue(value: Date | null | undefined): void;
    private _setToValue;
    protected _onDateSelected(event: ICalendarDateSelectEventData): void;
    protected _applyMin(): void;
    protected _applyMax(): void;
    protected _initializeToMask(): void;
    protected _applyDisabledDates(): void;
    protected _applyDisabledDaysOfWeek(): void;
    private _onToInput;
    protected _handleInput(value: string): void;
    private _handleToInput;
    private _onToInputFocus;
    private _onToInputBlur;
    protected _onInputFocus(evt: FocusEvent): void;
    protected _onInputBlur(evt: FocusEvent): void;
    protected _onInputValueChanged(value: string): void;
    private _onToInputValueChanged;
    get value(): IDatePickerRange | null | undefined;
    set value(value: IDatePickerRange | null | undefined);
    get from(): Date | string | null | undefined;
    set from(value: Date | string | null | undefined);
    get to(): Date | string | null | undefined;
    set to(value: Date | string | null | undefined);
}
