/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { PopupProps } from '@progress/kendo-vue-popup';
import { FormComponentProps, FormComponentValidity } from '@progress/kendo-vue-common';
import { DateInputChangeEvent } from '../dateinput/interfaces/DateInputEventArguments';
import { TimeSelectorChangeEvent } from './TimeSelector';
import { TimePickerSettings } from './models/main';
import { DateInputFormatPlaceholder } from '../dateinput/models/main';
import { PropType } from 'vue';
import { TimePickerFocusEvent, TimePickerBlurEvent } from './interfaces/TimePickerFocusBlurEvents';
/**
 * The arguments for the `onChange` event of the TimePicker.
 */
export interface TimePickerChangeEvent {
    event?: any;
    value: Date | null;
    show: boolean;
    target: any;
}
/**
 * The arguments for the `open` event of the TimePicker.
 */
export interface TimePickerOpenEvent {
    component: any;
}
/**
 * The arguments for the `close` event of the TimePicker.
 */
export interface TimePickerCloseEvent {
    component: any;
}
/**
 * Represents the props of the [Kendo UI for Vue TimePicker component]({% slug overview_timepicker %}).
 */
export interface TimePickerProps extends TimePickerSettings, FormComponentProps {
    /**
     * @hidden
     */
    modelValue?: Date;
    /**
     * Sets the default value of the TimePicker ([see example]({% slug default_value_timepicker %}#toc-setting-the-default-value)).
     */
    defaultValue?: Date;
    /**
     * Fires each time the user selects a new value ([see example]({% slug controlled_timepicker %}#toc-controlling-the-date-value)).
     */
    onChange?: (event: TimePickerChangeEvent) => void;
    /**
     * Specifies the value of the TimePicker ([see example]({% slug controlled_timepicker %}#toc-controlling-the-date-value)).
     *
     * > The `value` has to be a valid [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
     */
    value?: Date | null;
}
/**
 * @hidden
 */
export interface TimePickerComputed {
    [key: string]: any;
    timeSelector: any;
    computedValue: Date | null;
    computedShow: boolean;
}
/**
 * @hidden
 */
declare const TimePicker: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    cancelButton: {
        type: PropType<boolean>;
        default: boolean;
    };
    nowButton: {
        type: PropType<boolean>;
        default: any;
    };
    defaultShow: {
        type: PropType<boolean>;
        default: boolean;
    };
    modelValue: {
        type: PropType<Date>;
        default: any;
    };
    defaultValue: {
        type: PropType<Date>;
        default: () => any;
    };
    dateInput: {
        type: PropType<any>;
        default: () => any;
    };
    popup: {
        type: PropType<any>;
        default: () => any;
    };
    disabled: {
        type: PropType<boolean>;
        default: boolean;
    };
    format: {
        type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
        default: () => string | object;
    };
    formatPlaceholder: {
        type: PropType<DateInputFormatPlaceholder>;
        default: () => DateInputFormatPlaceholder;
    };
    rounded: {
        type: PropType<string>;
        validator: (value: string) => boolean;
    };
    fillMode: {
        type: PropType<string>;
        validator: (value: string) => boolean;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        validator: (value: string) => boolean;
    };
    id: PropType<string>;
    ariaLabelledBy: PropType<string>;
    ariaDescribedBy: PropType<string>;
    min: {
        type: PropType<Date>;
        default: () => Date;
    };
    max: {
        type: PropType<Date>;
        default: () => Date;
    };
    name: PropType<string>;
    label: PropType<string>;
    placeholder: PropType<string>;
    popupSettings: {
        type: PropType<PopupProps>;
        default: () => {};
    };
    show: {
        type: PropType<boolean>;
        default: any;
    };
    tabIndex: {
        type: PropType<number>;
        default: number;
    };
    steps: {
        type: PropType<import('./models/IncrementalSteps').TimePickerIncrementalSteps>;
        default: () => {};
    };
    smoothScroll: {
        type: PropType<boolean>;
        default: boolean;
    };
    title: {
        type: PropType<string>;
        default: () => "";
    };
    value: {
        type: PropType<Date>;
        default: () => any;
    };
    width: PropType<string | number>;
    validationMessage: PropType<string>;
    required: {
        type: PropType<boolean>;
        default: boolean;
    };
    validityStyles: {
        type: PropType<boolean>;
        default: boolean;
    };
    validate: PropType<boolean>;
    valid: {
        type: PropType<boolean>;
        default: any;
    };
    inputAttributes: PropType<Object>;
}>, {
    kendoAnchorRef: import('vue').Ref<any, any>;
    kendoLocalizationService: {};
}, {
    currentValue: any;
    currentShow: boolean;
    valueDuringOnChange: any;
    showDuringOnChange: any;
    isFocused: boolean;
}, {
    timeSelector(): any;
    computedValue(): Date | null;
    computedShow(): boolean;
}, {
    validity(): FormComponentValidity;
    getDateInputText(): any;
    focus(): void;
    normalizeTime(date: Date): Date;
    setShow(show: boolean): void;
    mergeTime(value: Date | null): Date | null;
    handleInputValueChange(event: DateInputChangeEvent): void;
    handleValueChange(event: DateInputChangeEvent | TimeSelectorChangeEvent): void;
    handleFocus(event: FocusEvent): void;
    handleBlur(event: FocusEvent): void;
    timeBlur(event: FocusEvent): void;
    timeFocus(): void;
    createBlurTimeout(): void;
    handleValueReject(_: any): void;
    handleIconClick(event: any): void;
    handleIconMouseDown(event: any): void;
    handleKeyDown(event: any): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    changemodel: (value: Date | null) => true;
    'update:modelValue': (value: Date | null) => true;
    iconclick: (event: Event) => true;
    change: (event: TimePickerChangeEvent) => true;
    focus: (event: TimePickerFocusEvent) => true;
    blur: (event: TimePickerBlurEvent) => true;
    keydown: (event: KeyboardEvent) => true;
    open: (event: TimePickerOpenEvent) => true;
    close: (event: TimePickerCloseEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    cancelButton: {
        type: PropType<boolean>;
        default: boolean;
    };
    nowButton: {
        type: PropType<boolean>;
        default: any;
    };
    defaultShow: {
        type: PropType<boolean>;
        default: boolean;
    };
    modelValue: {
        type: PropType<Date>;
        default: any;
    };
    defaultValue: {
        type: PropType<Date>;
        default: () => any;
    };
    dateInput: {
        type: PropType<any>;
        default: () => any;
    };
    popup: {
        type: PropType<any>;
        default: () => any;
    };
    disabled: {
        type: PropType<boolean>;
        default: boolean;
    };
    format: {
        type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
        default: () => string | object;
    };
    formatPlaceholder: {
        type: PropType<DateInputFormatPlaceholder>;
        default: () => DateInputFormatPlaceholder;
    };
    rounded: {
        type: PropType<string>;
        validator: (value: string) => boolean;
    };
    fillMode: {
        type: PropType<string>;
        validator: (value: string) => boolean;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        validator: (value: string) => boolean;
    };
    id: PropType<string>;
    ariaLabelledBy: PropType<string>;
    ariaDescribedBy: PropType<string>;
    min: {
        type: PropType<Date>;
        default: () => Date;
    };
    max: {
        type: PropType<Date>;
        default: () => Date;
    };
    name: PropType<string>;
    label: PropType<string>;
    placeholder: PropType<string>;
    popupSettings: {
        type: PropType<PopupProps>;
        default: () => {};
    };
    show: {
        type: PropType<boolean>;
        default: any;
    };
    tabIndex: {
        type: PropType<number>;
        default: number;
    };
    steps: {
        type: PropType<import('./models/IncrementalSteps').TimePickerIncrementalSteps>;
        default: () => {};
    };
    smoothScroll: {
        type: PropType<boolean>;
        default: boolean;
    };
    title: {
        type: PropType<string>;
        default: () => "";
    };
    value: {
        type: PropType<Date>;
        default: () => any;
    };
    width: PropType<string | number>;
    validationMessage: PropType<string>;
    required: {
        type: PropType<boolean>;
        default: boolean;
    };
    validityStyles: {
        type: PropType<boolean>;
        default: boolean;
    };
    validate: PropType<boolean>;
    valid: {
        type: PropType<boolean>;
        default: any;
    };
    inputAttributes: PropType<Object>;
}>> & Readonly<{
    onBlur?: (event: TimePickerBlurEvent) => any;
    onChange?: (event: TimePickerChangeEvent) => any;
    onClose?: (event: TimePickerCloseEvent) => any;
    onFocus?: (event: TimePickerFocusEvent) => any;
    onKeydown?: (event: KeyboardEvent) => any;
    onOpen?: (event: TimePickerOpenEvent) => any;
    onChangemodel?: (value: Date) => any;
    "onUpdate:modelValue"?: (value: Date) => any;
    onIconclick?: (event: Event) => any;
}>, {
    required: boolean;
    title: string;
    value: Date;
    tabIndex: number;
    popup: any;
    disabled: boolean;
    format: string | object;
    max: Date;
    min: Date;
    defaultValue: Date;
    show: boolean;
    popupSettings: PopupProps;
    modelValue: Date;
    steps: import('./models/IncrementalSteps').TimePickerIncrementalSteps;
    validityStyles: boolean;
    valid: boolean;
    formatPlaceholder: DateInputFormatPlaceholder;
    defaultShow: boolean;
    dateInput: any;
    smoothScroll: boolean;
    cancelButton: boolean;
    nowButton: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { TimePicker };
