/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { TimePickerIncrementalSteps } from '../timepicker/models/main';
import { DateFormatOptions } from '@progress/kendo-vue-intl';
import { CalendarChangeEvent } from '..';
import { PropType } from 'vue';
/**
 * @hidden
 */
export interface DateTimeSelectorChangeEvent {
    event?: any;
    value: Date | null;
    target: any;
    cancelButton?: boolean;
}
/**
 * @hidden
 */
export interface DateTimeSelectorRejectEvent {
    event?: any;
    value: Date | null;
    target: any;
    cancelButton?: boolean;
}
/**
 * @hidden
 */
export interface DateTimeSelectorProps {
    value: Date | null;
    disabled?: boolean;
    cancelButton?: boolean;
    min: Date;
    max: Date;
    minTime?: Date;
    maxTime?: Date;
    weekNumber?: boolean;
    steps?: TimePickerIncrementalSteps;
    focusedDate?: Date;
    format?: string | DateFormatOptions;
    calendar?: any;
    onChange?: (event: DateTimeSelectorChangeEvent) => void;
    onReject?: (event: DateTimeSelectorRejectEvent) => void;
    onFocus?: (event: any) => void;
    onBlur?: (event: any) => void;
    onKeydown?: (event: any) => void;
}
/**
 * @hidden
 */
export interface DateTimeSelectorComputed {
    [key: string]: any;
    hasDateValue: boolean;
    computedMinTime: Date | null;
    computedMaxTime: Date | null;
}
/**
 * @hidden
 */
declare const DateTimeSelector: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    value: PropType<Date>;
    disabled: {
        type: PropType<boolean>;
        default: boolean;
    };
    cancelButton: {
        type: PropType<boolean>;
        default: boolean;
    };
    min: {
        type: PropType<Date>;
        default: Date;
    };
    max: {
        type: PropType<Date>;
        default: Date;
    };
    maxTime: {
        type: PropType<Date>;
        default: () => Date;
    };
    minTime: {
        type: PropType<Date>;
        default: () => Date;
    };
    weekNumber: {
        type: PropType<boolean>;
        default: boolean;
    };
    steps: {
        type: PropType<TimePickerIncrementalSteps>;
        default: () => {};
    };
    focusedDate: PropType<Date>;
    format: PropType<string | DateFormatOptions>;
    calendar: PropType<any>;
    onChange: PropType<(event: DateTimeSelectorChangeEvent) => void>;
    onReject: PropType<(event: DateTimeSelectorRejectEvent) => void>;
    onFocus: PropType<(event: any) => void>;
    onBlur: PropType<(event: any) => void>;
    onKeydown: PropType<(event: any) => void>;
}>, {
    kendoAnchorRef: import('vue').Ref<any, any>;
    kendoLocalizationService: {};
}, {
    currentTab: any;
    dateValue: any;
    timeValue: DateConstructor;
}, {
    hasDateValue(): boolean;
    computedMinTime(): Date | null;
    computedMaxTime(): Date | null;
}, {
    handleBlur(event: any): void;
    handleFocus(event: any): void;
    focus(args?: any): void;
    calendarElement(): any;
    normalizeRange(candidate: Date, value: Date | null): Date | null;
    hasActiveButton(): boolean;
    mergeTime(current: Date | null, candidate: Date | null): Date | null;
    mergeDate(candidate: Date | null, value: Date): Date | null;
    move(direction: 'left' | 'right'): void;
    handleReject(event: any): void;
    handleAccept(event: any, timeOverride?: Date): void;
    handleNowClick(event: any): void;
    handleCalendarValueChange(event: CalendarChangeEvent): void;
    handleTimeListContainerChange(candidate: Date): void;
    handleTabChange(value: string): void;
    handleKeyDown(event: any): void;
    handleTimePartMount(value: Date): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    value: PropType<Date>;
    disabled: {
        type: PropType<boolean>;
        default: boolean;
    };
    cancelButton: {
        type: PropType<boolean>;
        default: boolean;
    };
    min: {
        type: PropType<Date>;
        default: Date;
    };
    max: {
        type: PropType<Date>;
        default: Date;
    };
    maxTime: {
        type: PropType<Date>;
        default: () => Date;
    };
    minTime: {
        type: PropType<Date>;
        default: () => Date;
    };
    weekNumber: {
        type: PropType<boolean>;
        default: boolean;
    };
    steps: {
        type: PropType<TimePickerIncrementalSteps>;
        default: () => {};
    };
    focusedDate: PropType<Date>;
    format: PropType<string | DateFormatOptions>;
    calendar: PropType<any>;
    onChange: PropType<(event: DateTimeSelectorChangeEvent) => void>;
    onReject: PropType<(event: DateTimeSelectorRejectEvent) => void>;
    onFocus: PropType<(event: any) => void>;
    onBlur: PropType<(event: any) => void>;
    onKeydown: PropType<(event: any) => void>;
}>> & Readonly<{}>, {
    disabled: boolean;
    weekNumber: boolean;
    max: Date;
    min: Date;
    steps: TimePickerIncrementalSteps;
    maxTime: Date;
    minTime: Date;
    cancelButton: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { DateTimeSelector };
