﻿/**
* DevExpress HTML/JS Reporting (viewer\editing\models\editingFieldBase.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 { EditingField, IEditingFieldModelBase, IEditValueContainerViewModel } from '../editingField';
import { PreviewPage } from '../../internal/_page';
import { ArrayPropertyChangedEventArgs, BaseRenderingModel, IViewModel, PropertyChangedEventArgs } from '@devexpress/analytics-core/analytics-serializer-native';
export interface IEditingFieldViewModelBase extends IViewModel {
    zoom: number;
    active: boolean;
    template: string;
    field: IEditValueContainerViewModel;
    setEditingFieldElement: (elt: HTMLElement) => void;
    activateEditor: (viewModel: IEditingFieldViewModelBase, event: {
        target: EventTarget;
        currentTarget: EventTarget;
    }) => void;
    canActivateEditor: boolean;
    onClick: (model: IEditingFieldViewModelBase, event: Event) => void;
    containerStyle: {
        [key: string]: string;
    };
}
export declare class EditingFieldBase<T extends IEditingFieldViewModelBase = IEditingFieldViewModelBase> extends BaseRenderingModel<T> implements IEditingFieldModelBase {
    deferredUpdateViewModel(): boolean;
    protected _updateContainerStyle: () => void;
    constructor(page: PreviewPage);
    createViewModel(): T;
    updateViewModel(args: PropertyChangedEventArgs<EditingFieldBase> | ArrayPropertyChangedEventArgs<EditingFieldBase>): void;
    onPropertyChanged(args: PropertyChangedEventArgs<EditingFieldBase> | ArrayPropertyChangedEventArgs<EditingFieldBase>): void;
    canActivateEditor: boolean;
    activateEditor(model: EditingFieldBase, event: {
        target: EventTarget;
        currentTarget: EventTarget;
    }): void;
    onClick(model: EditingFieldBase, event: Event): void;
    template: string;
    field: EditingField;
    editingFieldElement: HTMLElement;
    containerStyle: {
        [key: string]: string;
    };
    zoom: number;
    active: boolean;
}
