﻿/**
* DevExpress HTML/JS Reporting (designer\utils\publicCallbacks.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 { ControlsFactory, IAction, IDataMemberInfo, ISerializationInfo, ISerializationInfoArray } from '@devexpress/analytics-core/analytics-utils';
import { IDialogModel } from '../tools/dialogs/reportDialogBase';
import { INavigateTab } from '../tools/navigation/navigateTab';
import { WizardType, WizardTypeString } from '../wizard/wizardTypes';
import { DxDeferred, ICommonCallbacksHandler } from '@devexpress/analytics-core/analytics-internal';
import { SaveReportDialog } from '../tools/dialogs/saveReportDialog';
import { OpenReportDialog } from '../tools/dialogs/openReportDialog';
import { SaveAsReportDialog } from '../tools/dialogs/saveAsReportDialog';
import { IPreviewCustomizationCallbacks, IPreviewCustomizationCallbacksCommon } from '../../viewer/utils/publicCallbacks';
import { IReportDesignerRootContext } from '../tools/generator/reportDesignerContext';
import { LayoutItemType } from '../helpers/reportParameterHelper';
import { IParameterDescriptor } from '../../viewer/parameters/parameterHelper';
interface IReportNavigationArgs {
    Tab: INavigateTab;
}
interface IReportTabClosingArgs extends IReportNavigationArgs {
    Tab: INavigateTab;
    ReadyToClose: DxDeferred<any>;
    Handled: boolean;
}
interface IReportOpenedArgs {
    Url: string;
    Report?: any;
}
interface IReportOpeningArgs extends IReportOpenedArgs {
    Cancel: boolean;
}
interface IComponentAddedArgs {
    Model: any;
    Parent: any;
}
interface ICustomizeDialogArgs<DialogType> {
    Popup: DialogType;
    Customize: (template: string, model: IDialogModel) => void;
}
interface ICustomizeWizardArgs {
    Type: WizardTypeString;
    Wizard: WizardType;
}
interface ICustomizeFieldListActionsArgs {
    Item: IDataMemberInfo;
    Actions: IAction[];
}
interface ICustomizeParameterPropertiesArgs {
    parameter: IParameterDescriptor;
    parameterPanelLayoutItem: {
        layoutItemType: LayoutItemType;
        name: string;
    };
    editors: ISerializationInfoArray;
    getEditor: (path: string) => ISerializationInfo;
    editOptions: {
        allowDelete: boolean;
    };
}
export type IReportViewerIntoDesignerCallbacks<T> = {
    [K in keyof IPreviewCustomizationCallbacks<T> as `Preview${K}`]: IPreviewCustomizationCallbacks<T>[K];
};
export interface IReportDeisgnerCallbacks<T> extends IReportViewerIntoDesignerCallbacks<T>, IPreviewCustomizationCallbacksCommon<T>, ICommonCallbacksHandler<T, IReportDesignerRootContext> {
    ReportTabClosing?: (sender: T, args: IReportTabClosingArgs) => void;
    ReportTabClosed?: (sender: T, args: IReportNavigationArgs) => void;
    ReportOpening?: (sender: T, args: IReportOpeningArgs) => void;
    ReportOpened?: (sender: T, args: IReportOpenedArgs) => void;
    TabChanged?: (sender: T, args: {
        Tab: INavigateTab;
    }) => void;
    ExitDesigner?: (sender: T) => void;
    ReportSaving?: (sender: T, args: IReportOpeningArgs) => void;
    reportSaved?: (sender: T, args: IReportOpenedArgs) => void;
    ComponentAdded?: (sender: T, args: IComponentAddedArgs) => void;
    CustomizeSaveDialog?: (sender: T, args: ICustomizeDialogArgs<SaveReportDialog>) => void;
    CustomizeOpenDialog?: (sender: T, args: ICustomizeDialogArgs<OpenReportDialog>) => void;
    CustomizeSaveAsDialog?: (sender: T, args: ICustomizeDialogArgs<SaveAsReportDialog>) => void;
    CustomizeWizard?: (sender: T, args: ICustomizeWizardArgs) => void;
    CustomizeToolbox?: (sender: T, args: {
        ControlsFactory: ControlsFactory;
    }) => void;
    CustomizeFieldListActions?: (sender: T, args: ICustomizeFieldListActionsArgs) => void;
    CustomizeParameterProperties?: (sender: T, args: ICustomizeParameterPropertiesArgs) => void;
}
export {};
