/**
 * @license
 * Copyright 2023 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>;
    }
}
/**
 * The web component class behind the `<forge-time-picker>` custom element.
 *
 * @tag forge-time-picker
 */
export declare class TimePickerComponent extends BaseComponent implements ITimePickerComponent {
    static get observedAttributes(): string[];
    private _foundation;
    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;
}
