/**
* DevExpress Analytics (query-builder\wizard\internal\_utils.d.ts)
* Version: 25.2.7
* Build date: May 5, 2026
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
///
import { ValueChangedEvent } from 'devextreme/ui/text_box';
import * as ko from 'knockout';
import { IDataSourceInfo } from '../../../core/utils/_fieldListProvider';
import { DxPromise } from '../../../core/utils/_jqueryUtils';
import { CodeResolver } from '../../../property-grid/internal/_codeResolver';
import { PropertyChangedEventArgs, ArrayPropertyChangedEventArgs } from '../../../serializer/propertyChangedEvents';
import { IPathRequest } from '../../../widgets/common/pathRequest';
import { KoTreeListItemFactory } from '../../../widgets/treelist/_ko_treelistUtils';
import { ITreeListOptions, TreeListItemViewModel } from '../../../widgets/treelist/_treelistItem';
import { ITreeListItemViewModel } from '../../../widgets/treelist/_treelistItem.viewModel';
import { IDataMemberInfo, IItemsProvider } from '../../../widgets/utils';
import { DataSourceParameter } from '../../dataSource/dataSourceParameter';
import { FederationDataSource } from '../../dataSource/federation/federationDataSource';
import { SqlDataConnection } from '../../dataSource/sql/sqlDataConnection';
import { SqlDataSource } from '../../dataSource/sql/sqlDataSource';
import { ISqlQueryViewModel } from '../../dataSource/utils';
import { IRebuildSchemaResponse, ISelectStatementResponse } from '../../utils/requestwrapper';
import { _DataSourceWizardOptions } from '../dataSourceWizard';
import { _WrappedWizardPage } from '../pages/__wrappedWizardPage';
import { BaseWizard } from '../wizard';
import { IBeforeWizardPageInitializeEventArgs, IWizardPageEventArgs } from '../wizardEventManager';
import { WizardPageProcessor } from './_wizardPageProcessor';
export interface IParameter {
name: string;
value: any;
type?: string;
}
export declare enum WizardSectionPosition {
Left = 1,
TopLeft = 2,
BottomLeft = 3,
Right = 4,
TopRight = 5,
BottomRight = 6,
Top = 7,
Bottom = 8
}
export interface IJsonDataSourceWizardCallbacks {
getParameters?: () => IParameter[];
}
export interface IDataSourceWizardCallbacks extends IJsonDataSourceWizardCallbacks {
selectStatement?: (connection: SqlDataConnection, queryJSON: string) => DxPromise;
finishCallback?: (wizardModel: any) => DxPromise;
customQueriesPreset?: (dataSource: SqlDataSource) => DxPromise;
customizeQBInitData?: (data: any) => any;
validateJsonUri?: (data: any) => any;
getItemsProviderCallback?: () => IItemsProvider;
fieldListsCallback?: (request: IPathRequest, dataSource?: IDataSourceInfo, useCache?: boolean) => JQueryPromise;
}
export interface IPopoverListOptions {
showPopover: () => void;
target?: string;
popoverListItems: () => any[];
className?: string;
popoverVisible: ko.Observable | ko.Computed;
position?: any;
popupContainer?: string;
}
export interface ICustomQueryTreeListItemViewModel extends ITreeListItemViewModel {
queryName: string;
queryNameHasChanged: (event: ValueChangedEvent) => void;
}
export declare class CustomQueryTreeListItem extends TreeListItemViewModel {
protected _getTemplateName(): string;
protected _getCustomizedTemplateName(isEditable: boolean): string;
updateViewModel(args: PropertyChangedEventArgs | ArrayPropertyChangedEventArgs): void;
createViewModel(): ITreeListItemViewModel;
onPropertyChanged(args: PropertyChangedEventArgs | ArrayPropertyChangedEventArgs): void;
queryName: string;
}
export declare class MultiQueryTreeListItemFactory extends KoTreeListItemFactory {
createItem(options: ITreeListOptions, path?: string[], onItemsVisibilityChanged?: () => void, rtl?: boolean, resolver?: CodeResolver): TreeListItemViewModel;
}
export interface IMultiQueryDataSourceWizardCallbacks extends IDataSourceWizardCallbacks {
sqlDataSourceResultSchema?: (dataSource: SqlDataSource) => DxPromise;
federationDataSourceResultSchema?: (dataSource: FederationDataSource) => DxPromise<{
resultSchemaJSON: string;
}>;
}
export interface IParametersViewModelConverter {
createParameterViewModel(parameter: DataSourceParameter): any;
getParameterFromViewModel(parameterViewModel: any): DataSourceParameter;
}
export interface IWizardPageStyle {
top?: any;
bottom?: any;
left?: any;
right?: any;
width?: any;
height?: any;
display?: any;
}
export declare function getSectionStyle(position: WizardSectionPosition, defaultMargin?: number, isVisible?: boolean): IWizardPageStyle;
export declare function subscribeArray(array: ko.ObservableArray, subscribeItem: (value: T, onChange: () => void) => void, onChange: () => void): ko.Subscription;
export declare function subscribeProperties(properties: Array | ko.Computed>, onChange: (val?: any) => void): ko.Subscription[];
export declare function subscribeObject(object: ko.Observable | ko.Computed, subscribeProperties: (value: T, onChange: () => void) => void, onChange: () => void): ko.Subscription;
export declare function _createBeforeInitializePageEventArgs(page: _WrappedWizardPage, self: TWizard): IBeforeWizardPageInitializeEventArgs;
export declare function _createPageEventArgs(page: _WrappedWizardPage, self: TWizard): IWizardPageEventArgs;
export declare function _isMoreThanOneDataSourceTypeAvailable(dataSourceOptions: _DataSourceWizardOptions): boolean;