/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { ITimePickerAdapter } from './time-picker-adapter';
import { ITimePickerOption, TimePickerValidationCallback, TimePickerParseCallback, TimePickerFormatCallback, TimePickerCoercionCallback, TimePickerPrepareMaskCallback } from './time-picker-constants';
export interface ITimePickerFoundation extends ICustomElementFoundation {
    value: string | null | undefined;
    open: boolean;
    allowSeconds: boolean;
    masked: boolean;
    showMaskFormat: boolean;
    use24HourTime: boolean;
    allowInvalidTime: boolean;
    min: string | null | undefined;
    max: string | null | undefined;
    restrictedTimes: string[];
    startTime: string | null | undefined;
    step: number;
    allowInput: boolean;
    showNow: boolean;
    showHourOptions: boolean;
    customOptions: ITimePickerOption[];
    validationCallback: TimePickerValidationCallback;
    parseCallback: TimePickerParseCallback;
    formatCallback: TimePickerFormatCallback;
    coercionCallback: TimePickerCoercionCallback;
    prepareMaskCallback: TimePickerPrepareMaskCallback;
    disabled: boolean;
    popupClasses: string | string[];
    allowDropdown: boolean;
}
export declare class TimePickerFoundation implements ITimePickerFoundation {
    private _adapter;
    private _value?;
    private _masked;
    private _use24HourTime;
    private _showMaskFormat;
    private _min?;
    private _max?;
    private _restrictedTimes;
    private _startTime?;
    private _step;
    private _allowInput;
    private _identifier;
    private _open;
    private _allowSeconds;
    private _allowInvalidTime;
    private _popupTarget;
    private _showNow;
    private _showHourOptions;
    private _customOptions;
    private _validationCallback;
    private _parseCallback;
    private _formatCallback;
    private _coercionCallback;
    private _prepareMaskCallback;
    private _disabled;
    private _popupClasses;
    private _allowDropdown;
    private _isInitialized;
    private _dropdownConfig;
    private _inputListener;
    private _inputKeydownListener;
    private _toggleMousedownListener;
    private _inputFocusListener;
    private _inputBlurListener;
    private _inputMousedownListener;
    constructor(_adapter: ITimePickerAdapter);
    initialize(): void;
    disconnect(): void;
    /** Called when the input mask changes or the `input` event occurs on our `<input>` element. */
    private _onInput;
    private _onInputKeydown;
    private _trySetActiveOption;
    private _selectActiveOption;
    private _onToggleMousedown;
    private _onInputFocus;
    private _onInputBlur;
    private _onInputMousedown;
    private _applyDisabled;
    private _applyMask;
    private _applyAllowInput;
    private _applyAllowDropdown;
    private _applyAllowSeconds;
    private _handleInput;
    private _emitChangeEvent;
    private _trySetValue;
    private _setValue;
    private _validateMillis;
    private _isValidTimeFormat;
    private _isValidInputValue;
    private _onSelect;
    private _selectInputText;
    private _applyValue;
    private _normalizeTimeValue;
    private _openDropdown;
    private _closeDropdown;
    private _getOptionIndexClosestCurrent;
    private _findClosestOptionIndex;
    private _formatInputValue;
    private _generateTimeOptions;
    private _convertTimeStringToMillis;
    private _formatValue;
    private _warnInvalidFormat;
    get open(): boolean;
    set open(value: boolean);
    get masked(): boolean;
    set masked(value: boolean);
    get showMaskFormat(): boolean;
    set showMaskFormat(value: boolean);
    get allowSeconds(): boolean;
    set allowSeconds(value: boolean);
    get use24HourTime(): boolean;
    set use24HourTime(value: boolean);
    get allowInvalidTime(): boolean;
    set allowInvalidTime(value: boolean);
    get value(): string | null;
    set value(value: string | null);
    get min(): string | null;
    set min(value: string | null);
    get max(): string | null;
    set max(value: string | null);
    get restrictedTimes(): string[];
    set restrictedTimes(value: string[]);
    get startTime(): string | null;
    set startTime(value: string | null);
    get step(): number;
    set step(value: number);
    get allowInput(): boolean;
    set allowInput(value: boolean);
    get popupTarget(): string;
    set popupTarget(value: string);
    get showNow(): boolean;
    set showNow(value: boolean);
    get showHourOptions(): boolean;
    set showHourOptions(value: boolean);
    get customOptions(): ITimePickerOption[];
    set customOptions(value: ITimePickerOption[]);
    set validationCallback(cb: TimePickerValidationCallback);
    set parseCallback(cb: TimePickerParseCallback);
    set formatCallback(cb: TimePickerFormatCallback);
    set coercionCallback(cb: TimePickerCoercionCallback);
    set prepareMaskCallback(cb: TimePickerPrepareMaskCallback);
    get disabled(): boolean;
    set disabled(value: boolean);
    get popupClasses(): string | string[];
    set popupClasses(value: string | string[]);
    get allowDropdown(): boolean;
    set allowDropdown(value: boolean);
}
