﻿/**
* DevExpress HTML/JS Reporting (viewer\parameters\parametersPanelModelBase.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 { DxDeferred } from '@devexpress/analytics-core/analytics-internal-native';
import { TabInfoWithPropertyGrid } from '@devexpress/analytics-core/analytics-utils-native';
import { IEnumType } from '../../common/customTypes';
import { IKeyValuePair } from '../../common/types';
import { IParameterPanelItemInfo, ParameterPanelItemBase } from './parameterPanelItemBase';
import { IPreviewParameterInfo, PreviewParameter } from './previewParameter';
import { PreviewParameterHelper } from './previewParameterHelper';
import { PropertyChangedEventArgs, ArrayPropertyChangedEventArgs } from '@devexpress/analytics-core/analytics-serializer-native';
import { IParametersPanelViewModel } from './previewParametersViewModel.viewmodel';
import { ReportHolder } from '../reportHolder';
import { Properties } from 'devextreme/ui/button';
export interface IReportParametersInfo {
    shouldRequestParameters?: boolean;
    parameters?: Array<IPreviewParameterInfo>;
    knownEnums?: Array<IEnumType>;
    parameterPanelLayout?: IParameterPanelItemInfo;
}
export interface IRange {
    Start: any;
    End: any;
}
export interface ILookUpValue {
    Description: string;
    Value: any;
}
export interface IUpdateParameterResponse {
    enabled: boolean;
    visible: boolean;
    lookUpValues: any;
}
export declare class ParametersPanelModelBase extends ParameterPanelItemBase<IParametersPanelViewModel> {
    protected _parametersHolder: ReportHolder;
    private _updateParametersTimeOut;
    private _topChangedParameter;
    _needToUpdateParameter: boolean;
    get parameters(): PreviewParameter[];
    createViewModel(): IParametersPanelViewModel;
    updateViewModel(args: PropertyChangedEventArgs<any> | ArrayPropertyChangedEventArgs<any>): void;
    private get _visibleParameters();
    private _shouldProcessParameter;
    private _getParametersStateRequest;
    private _getDoneGetParametersStateHandler;
    private subscribeParameter;
    private _getFailGetParametersStateHandler;
    private _setLookUpValues;
    private _getParameterValuesContainedInLookups;
    private _filterParameterValuesContainsInLookups;
    private _setParameterValue;
    setParameterValue(parameterName: string, value: unknown): void;
    onPropertyChanged(args: PropertyChangedEventArgs<ParametersPanelModelBase> | ArrayPropertyChangedEventArgs<ParametersPanelModelBase>): void;
    constructor(parametersHolder: ReportHolder, parameterHelper?: PreviewParameterHelper, enableKeyboardSupport?: boolean, getRootElement?: (element: Element) => Element);
    initialize(originalParametersInfo: IReportParametersInfo): void;
    private getPathsAfterPath;
    serializeParameters(): Array<IKeyValuePair<any>>;
    restore: () => void;
    updateParameters(changedParameter: PreviewParameter): void;
    submit: () => void;
    private _handleValidationResult;
    _validateAndSubmit(params: any): void;
    showButtons: boolean;
    _showHeader: boolean;
    buttons: Array<Properties>;
    processInvisibleParameters: boolean;
    parametersLoading: boolean;
    tabInfo: TabInfoWithPropertyGrid;
    _popupInfo: {
        visible: boolean;
        notEmpty: boolean;
    };
    _popupVisible: boolean;
    _popupVisibleSwitch: boolean;
    parameterHelper: PreviewParameterHelper;
    prevParametersStateRequest: DxDeferred<any>;
    lastValidationRequest: DxDeferred<any>;
}
