/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ITimePickerOption, TimePickerParseCallback, TimePickerValidationCallback, TimePickerFormatCallback, TimePickerCoercionCallback, TimePickerPrepareMaskCallback } from './time-picker-constants';
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
export interface ITimePickerComponent extends IBaseComponent {
    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;
    popupTarget: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-time-picker': ITimePickerComponent;
    }
    interface HTMLElementEventMap {
        'forge-time-picker-open': CustomEvent<void>;
        'forge-time-picker-close': CustomEvent<void>;
        'forge-time-picker-input': Event;
        'forge-time-picker-change': CustomEvent<string | null>;
    }
}
/**
 * @tag forge-time-picker
 *
 * @property {string | null | undefined} [value=undefined] - The current value of the time picker.
 * @property {boolean} [open=false] - Whether or not the time picker is open.
 * @property {boolean} [allowSeconds=false] - Whether or not to allow seconds in the time picker.
 * @property {boolean} [masked=false] - Whether or not the time picker input should be masked.
 * @property {boolean} [showMaskFormat=false] - Whether or not to show the mask format in the input.
 * @property {boolean} [use24HourTime=false] - Whether or not to use 24-hour time.
 * @property {boolean} [allowInvalidTime=false] - Whether or not to allow invalid times.
 * @property {string | null | undefined} [min=undefined] - The minimum time that can be selected.
 * @property {string | null | undefined} [max=undefined] - The maximum time that can be selected.
 * @property {string[]} [restrictedTimes=[]] - An array of times that cannot be selected.
 * @property {string | null | undefined} [startTime=undefined] - The time to start the time picker at.
 * @property {number} [step=undefined] - The step interval for the time picker.
 * @property {boolean} [allowInput=false] - Whether or not to allow manual input of the time.
 * @property {boolean} [showNow=false] - Whether or not to show a "Now" button.
 * @property {boolean} [showHourOptions=false] - Whether or not to display hour options in dropdown.
 * @property {ITimePickerOption[]} [customOptions=[]] - An array of custom time picker options.
 * @property {TimePickerValidationCallback} [validationCallback=undefined] - A callback function to validate the time.
 * @property {TimePickerParseCallback} [parseCallback=undefined] - A callback function to parse the time.
 * @property {TimePickerFormatCallback} [formatCallback=undefined] - A callback function to format the time.
 * @property {TimePickerCoercionCallback} [coercionCallback=undefined] - A callback function to coerce the time.
 * @property {TimePickerPrepareMaskCallback} [prepareMaskCallback=undefined] - A callback function to prepare the mask.
 * @property {boolean} [disabled=false] - Whether or not the time picker is disabled.
 * @property {string | string[]} [popupClasses=undefined] - The classes to apply to the time picker popup.
 * @property {boolean} [allowDropdown=false] - Whether or not to allow the time picker to be a dropdown.
 * @property {string} [popupTarget=undefined] - The target element to attach the popup to.
 *
 */
export declare class TimePickerComponent extends BaseComponent implements ITimePickerComponent {
    static get observedAttributes(): string[];
    private _core;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    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;
    /** Whether or not to display hour options in dropdown */
    showHourOptions: boolean;
    customOptions: ITimePickerOption[];
    validationCallback: TimePickerValidationCallback;
    parseCallback: TimePickerParseCallback;
    formatCallback: TimePickerFormatCallback;
    coercionCallback: TimePickerCoercionCallback;
    prepareMaskCallback: TimePickerPrepareMaskCallback;
    disabled: boolean;
    popupClasses: string | string[];
    allowDropdown: boolean;
    popupTarget: string;
}
