﻿/**
* DevExpress HTML/JS Reporting (viewer\widgets\dateRange\dateRangeEditor.viewmodel.d.ts)
* Version:  26.1.3
* Build date: Jun 16, 2026
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { IViewModel } from '@devexpress/analytics-core/analytics-serializer-native';
import { Properties as PopupProperties } from 'devextreme/ui/popup';
import { Properties as ScrollViewProperties } from 'devextreme/ui/scroll_view';
import { Properties as CalendarProperties } from 'devextreme/ui/calendar';
import { DateRangeEditor } from './dateRangeEditor';
import { DateRangeDialogElementsKeyboardHelper, PredefinedDateRangesKeyboardHelper, TimeRangeDialogElementsKeyboardHelper } from '../../accessibility/_dateRangeKeyboardHelper';
import { IDateRangeEditorItem } from './dateRangeEditor.ranges';
export type IDateRangeEditorPredefinedItemViewModel = IDateRangeEditorItem & {
    click: () => void;
    selected: boolean;
    template: HTMLElement;
    id?: string;
    ratio: number;
};
export type IDateRangeCalendarViewModel = {
    value: Date;
    onValueChanged: CalendarProperties['onValueChanged'];
    min: Date;
    height: string;
    inRange: (date: Date) => boolean;
};
export interface IDateRangeEditorViewModel extends IViewModel {
    getPopupSettings: (isTimeOnly: boolean) => PopupProperties;
    onRangeItemsRendered: (e: any) => void;
    onRangeItemClick: (e: any) => void;
    _displayName: string;
    displayValue: string;
    disabled: boolean;
    visible: boolean;
    popupModel: IDateRangeEditorViewModel | any;
    popupTemplate: string;
    dialogKeyboardHelper: DateRangeDialogElementsKeyboardHelper | TimeRangeDialogElementsKeyboardHelper;
    scrollViewOptions: ScrollViewProperties;
    predefinedDateRanges: {
        attr: object;
        accessibilityKeyboardHelper: PredefinedDateRangesKeyboardHelper;
        scrollViewOptions: ScrollViewProperties;
        items: IDateRangeEditorPredefinedItemViewModel[];
        groupedItems: IDateRangeEditorPredefinedItemViewModel[][];
    };
    items: IDateRangeEditorItem[];
    showPopup: () => void;
    cacheElement: (element: HTMLElement) => void;
    startRange: IDateRangeCalendarViewModel;
    endRange: IDateRangeCalendarViewModel;
    _editorInputId: string;
    type: string;
}
export declare function createPredefinedGroupedItemsViewModel(editor: DateRangeEditor): IDateRangeEditorPredefinedItemViewModel[][];
export declare function createDateRangeEditorViewModel(this: DateRangeEditor, baseViewModel: IViewModel): IDateRangeEditorViewModel;
