﻿/**
* DevExpress HTML/JS Reporting (viewer\internal\_progressViewModel.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 { DxPromise, ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal-native';
import { ArrayPropertyChangedEventArgs, BaseRenderingModel, IViewModel, PropertyChangedEventArgs, IRenderingModel } from '@devexpress/analytics-core/analytics-serializer-native';
import { IDisposable } from '@devexpress/analytics-core/analytics-utils-native';
export interface IElementPosition {
    top: boolean;
    bottom?: boolean;
    left: boolean;
    right?: boolean;
}
export interface IProgressHandler extends IRenderingModel, IDisposable {
    text: string;
    visible: boolean;
    progress: number;
    inProgress: boolean;
    cancelText: string;
    cancelAction: () => void;
    startProgress: (startOperationId: string, onStop: (operationId: string) => void, getOperationIdPromise?: DxPromise<string>) => DxPromise<string>;
    complete: (operationId: string) => void;
    wasCancelRequested(id: string): boolean;
    setPosition: (position: IElementPosition) => void;
}
export interface IProgressBarViewModel extends IViewModel {
    text: string;
    visible: boolean;
    progress: number;
    cssClasses: string;
    progressBarAccessibilityKeyboardHelper: any;
    cancelButton: {
        action: () => void;
        text?: string;
        visible?: boolean;
    };
}
export declare class ProgressViewModel extends BaseRenderingModel<IProgressBarViewModel> implements IProgressHandler {
    private _startOperationId;
    private _lastOperationIdDeferred;
    private _lastOperationDeferred;
    private _cancelExportRequests;
    deferredUpdateViewModel(): boolean;
    constructor(enableKeyboardSupport?: boolean);
    updateViewModel(args: PropertyChangedEventArgs<any> | ArrayPropertyChangedEventArgs<any>): void;
    createViewModel(): IProgressBarViewModel;
    onPropertyChanged(args: PropertyChangedEventArgs<any> | ArrayPropertyChangedEventArgs<any>): void;
    private _rejectLastOperationIdDeferred;
    private _rejectLastOperationDeferred;
    progressBarAccessibility: ListKeyboardHelper;
    visible: boolean;
    text: string;
    progress: number;
    cancelText: string;
    cancelAction: () => void;
    inProgress: boolean;
    private _operationId;
    private _isCancelling;
    private _forceInvisible;
    private _cssClasses;
    startProgress(startOperationId: string, onStop?: (operationId: string) => void, operationIdPromise?: DxPromise<string>): DxPromise<string>;
    complete(completeOperationId: string): void;
    wasCancelRequested(id: string): boolean;
    setPosition(position: IElementPosition): void;
    dispose(): void;
}
