import { EventEmitter } from '../../stencil-public-runtime';
import { EAbsoluteTimeError } from '../../types';
import dayjs from 'dayjs';
import { ERelativeTimeInputMode, EAbsoluteTimePickerMode, IAbsoluteTimePicker, IAbsoluteTimePickerEvents, IRelativeTimeInput, IAbsoluteSelectedRangeDates } from './absolute-time-picker.types';
export declare class KvAbsoluteTimePicker implements IAbsoluteTimePicker, IAbsoluteTimePickerEvents {
    /** @inheritdoc */
    headerTitle?: string;
    /** @inheritdoc */
    displayBackButton?: boolean;
    /** @inheritdoc */
    mode?: EAbsoluteTimePickerMode;
    /** @inheritdoc */
    selectedDates?: string[];
    /** @inheritdoc */
    initialDate?: string;
    /** @inheritdoc */
    disabledDates?: string[];
    /** @inheritdoc */
    relativeTimeConfig?: IRelativeTimeInput;
    /** @inheritdoc */
    calendarInputMinDate?: string;
    /** @inheritdoc */
    calendarInputMaxDate?: string;
    /** @inheritdoc */
    error?: EAbsoluteTimeError;
    /** @inheritdoc */
    selectedDatesChange: EventEmitter<IAbsoluteSelectedRangeDates>;
    /** @inheritdoc */
    backButtonClicked: EventEmitter<MouseEvent>;
    /** @inheritdoc */
    relativeTimeConfigReset: EventEmitter<MouseEvent>;
    /** @inheritdoc */
    relativeTimeConfigChange: EventEmitter<IAbsoluteSelectedRangeDates>;
    /** Input values inserted by the user on the date and time input */
    fromInputValue: string;
    toInputValue: string;
    singleInputValue: string;
    /** Shared hovered date between calendars for range mode */
    hoveredDate: string;
    /** First calendar displayed month (Second calendar is displayedMonth + 1) */
    displayedMonth: dayjs.Dayjs;
    /** Used to force focus the from and to input */
    fromInputFocused: boolean;
    toInputFocused: boolean;
    /**
     * Used to define when the input dates came from the relative time picker where the input
     * can be an absolute date or a text (ex: last 24 hours)
     */
    inputMode: ERelativeTimeInputMode;
    /** Calendars max and minimum dates */
    minDate: string;
    maxDate: string;
    handleSelectedRangeDatesChange(value?: string[]): void;
    handleRelativeTimeConfigInput(newValue: IRelativeTimeInput): void;
    private setDateLimits;
    private setInputValues;
    private resetInputValues;
    private resetDateLimits;
    private emitSelectRangeDatesChangeEvent;
    private handleBackClick;
    private onClickDate;
    private handleClickBackMonth;
    private handleClickForwardMonth;
    private handleHoveredDateChange;
    private handleInputReset;
    /** User date-time-input I/O event handlers */
    private handleOnFocusFromInput;
    private handleOnFocusToInput;
    private handleDateChange;
    private handleFromInputDateChange;
    private handleToInputDateChange;
    private handleEndDateLostFocus;
    /** Components config methods */
    private useInputMask;
    private getCalendarStringLimits;
    private getCalendarTimestampLimits;
    render(): any;
}
