﻿/**
* DevExpress HTML/JS Reporting (viewer\utils\initializer.d.ts)
* Version:  24.2.6
* Build date: Mar 18, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { IDesignerPart, IGlobalizeSettings, ILocalizationSettings, _ICommonCallbacksHandler, ILicenseInfoOptions } from '@devexpress/analytics-core/analytics-internal-native';
import { IDisplayedValue, ISerializationInfo, RequestContentType, TabPanel } from '@devexpress/analytics-core/analytics-utils-native';
import { IKeyValuePair } from '../../common/types';
import { EditingField } from '../editing/editingField';
import { ExportOptionsPreview } from '../exportOptions/exportOptionsPreview';
import { IGeneratedDocumentData } from '../internal/_previewRequestWrapper';
import { IParameter, IParameterDescriptor } from '../parameters/parameterHelper';
import { PreviewParametersPanelModel } from '../parameters/previewParametersModel';
import { IReportParametersInfo, ParametersPanelModelBase } from '../parameters/parametersPanelModelBase';
import { ReportPreview } from '../reportPreview';
import { IBrickNode } from './utils';
import { ExportResultRequestData } from '../internal/_exportHandler';
export interface IPreviewInitialize {
    reportId?: string;
    documentData?: IGeneratedDocumentData;
    reportUrl?: string;
    documentId?: string;
    pageSettings?: IPreviewPageInitialSettings;
    exportOptions?: string;
    parametersInfo?: IReportParametersInfo;
    rtlReport?: boolean;
    startBuildFaultMessage?: string;
    error?: any;
    _licenseOptions?: ILicenseInfoOptions;
}
export interface IPreviewModel {
    tabPanel: TabPanel;
    reportPreview: ReportPreview;
    Close: () => void;
    ExportTo: (format?: string, inlineResult?: boolean) => void;
    GetCurrentPageIndex: () => number;
    GetParametersModel: () => PreviewParametersPanelModel;
    GoToPage: (pageIndex: number) => void;
    OpenReport: (reportUrl: string) => void;
    Print: (pageIndex?: number) => Promise<boolean>;
    ResetParameters: () => void;
    StartBuild: () => void;
}
export interface IPreviewPageInitialSettings {
    height?: number;
    width?: number;
    color?: string;
}
export interface IParametersCustomizationHandler {
    customizeParameterEditors?: (parameter: IParameterDescriptor, info: ISerializationInfo) => void;
    customizeParameterLookUpSource?: (parameter: IParameterDescriptor, items: Array<IDisplayedValue>) => any;
    parametersReset?: (parametersViewModel: ParametersPanelModelBase, parameters: IParameter[]) => void;
    parametersSubmitted?: (parametersViewModel: ParametersPanelModelBase, parameters: Array<IKeyValuePair<any>>) => void;
    parametersInitialized?: (parametersModel: ParametersPanelModelBase, actualParametersInfo: any[], submit: () => void, shouldRequestParameters: boolean) => void;
}
export interface IPreviewCustomizationHandler extends IParametersCustomizationHandler, _ICommonCallbacksHandler {
    _onGetBuildStatus?: (status: any) => void;
    _onGetDocumentDetails?: (respose: any) => void;
    customizeParts?: (parts: IDesignerPart[]) => void;
    previewClick?: (pageIndex: number, brick: IBrickNode, defaultHandler: () => void) => boolean;
    editingFieldChanged?: (field: EditingField, oldValue: any, newValue: any) => any;
    documentReady?: (documentId: string, reportId: string, pageCount: number) => void;
    customizeExportOptions?: (options: IPreviewExportOptionsCustomizationArgs) => void;
    onExport?: (exportResultRequestData: ExportResultRequestData) => void;
}
export interface IPreviewExportOptionsCustomizationArgs {
    exportOptions: ExportOptionsPreview;
    panelVisible: boolean;
}
export interface IMobileModeSettings {
    readerMode?: boolean;
    animationEnabled?: boolean;
}
export interface ITabPanelSettings {
    position?: string;
    width?: number | string;
}
export interface ISearchSettings {
    useAsyncSearch?: boolean;
    searchEnabled?: boolean;
}
export interface IProgressBarSettings {
    position?: string;
    keepOnVisibleArea?: boolean;
}
export interface IRemoteSettings {
    authToken?: string;
    serverUri?: string;
}
export interface IExportSettings {
    useSameTab?: boolean;
    useAsynchronousExport?: boolean;
    showPrintNotificationDialog?: boolean;
}
export interface IParametersPanelSettings extends ILocalizationSettings {
    handlerUri?: string;
    rtl?: boolean;
    accessibilityCompliant?: boolean;
}
export interface IWebDocumentViewerSettings extends IParametersPanelSettings {
    allowURLsWithJSContent?: boolean;
    isMobile?: boolean;
    requestContentType?: RequestContentType;
    mobileModeSettings?: IMobileModeSettings;
    remoteSettings?: IRemoteSettings;
    tabPanelSettings?: ITabPanelSettings;
    progressBarSettings?: IProgressBarSettings;
    exportSettings?: IExportSettings;
    searchSettings?: ISearchSettings;
    developmentMode?: boolean;
}
export interface IWebDocumentViewerModel extends IPreviewInitialize, IWebDocumentViewerSettings, IGlobalizeSettings {
    cultureInfoList?: {
        [key: string]: string;
    };
    previewVisible?: boolean;
}
export interface IBindingSettings {
    element: HTMLElement;
    model: IWebDocumentViewerModel;
    callbacks?: IPreviewCustomizationHandler;
    applyBindings?: boolean;
}
